2013-11-30 1 views
-1

У меня есть код, который должен позволить пользователю просматривать его машину для загрузки jpeg, gif или png.Проблема с загрузкой изображений с php

Мой код отлично работает с моего xampp localhost.

Я загрузил свой код в веб-службы Amazon, где у меня есть сервер Ubuntu 12.04, на котором я установил LAMP. После этого код не работает.

Я проследил, где я считаю, что код не работает. Это значение равно getimagesize($old_image_path), это возвращает пустой набор.

$old_image_path = /var/www/ch23_ex1/images//leaf.gif, когда я выбираю pic с рабочего стола, не знаю, почему этот путь показывает, но он работал с xampp.

Обратите внимание на эхо-заявления, которые включены для проверки выхода из них: должны

allow_url_fopen = 1

/var/www/ch23_ex1/images//NChandler03.jpgbool(false) Тип изображения = Файл изображение JPEG, GIF или PNG.

Вот часть кода, где я считаю, что потерпеть неудачу:

function resize_image($old_image_path, $new_image_path, 
     $max_width, $max_height) { 
    echo "allow_url_fopen = " . ini_get("allow_url_fopen")."<br>"; 
    // Get image type 
    echo $old_image_path; 
    //$image_info = file_get_contents($old_image_path); 
    $image_info = getimagesize($old_image_path); 
    $image_type = $image_info[2]; 
    var_dump($image_info); 
    echo 'Image type = '.$image_type; 
    // Set up the function names 
    switch($image_type) { 
     case 2: 
      $image_from_file = 'imagecreatefromjpeg'; 
      $image_to_file = 'imagejpeg'; 
     break; 
     case 1: 
      $image_from_file = 'imagecreatefromgif'; 
      $image_to_file = 'imagegif'; 
     break; 
     case 3: 
      $image_from_file = 'imagecreatefrompng'; 
      $image_to_file = 'imagepng'; 
     break; 
     default: 
     echo $image_type; 
     echo 'File must be a JPEG, GIF, or PNG image.'; 
     exit; 
    } 
} 
+0

Ожидаете ли вы открыть файл на вашей машине пользователя с помощью 'fopen'? Это не сработает. Вам нужно, чтобы ваш браузер загружал файл. Посмотрите [обработка файлов] (http://php.net/manual/en/features.file-upload.php) –

+0

Привет, мистер Музыкант. Нет, fopen был тестовым заявлением, проверяющим настройки сервера. Спасибо за вашу мысль. – schandl2

ответ

0

Я нашел мой ответ отвечал на подобный вопрос. Все, что мне нужно было сделать, - это изменить права на файл изображений, введя следующий код на сервер. Эта первая команда меняет каталог на файл, содержащий мой файл изображений. Вторая команда изменяет разрешения файла изображений, чтобы мой код мог писать на него. Надеюсь, это поможет кому-то другому.

cd /var/www/ch23_ex1/ 
sudo chmod 775 images