скопировать php без ошибок - PullRequest
0 голосов
/ 07 февраля 2012

У меня есть форма с возможностью загрузки изображения с компьютера на сервер, но она не будет работать. Я не получаю никаких сообщений об ошибках, так что это довольно раздражает. (Сначала я получил отказано в разрешении, но это было решено путем изменения прав), но теперь, когда я отправляю форму, все идет нормально, но файл не копируется в папку назначения. (Папка существует: я пробовал с file_exist () ...)

Вот часть кода:

<form action='/changingfruit/index.php?item=bad' name='form' method='post' enctype='multipart/form-data'>
    <tr>
        <td><input type='text' name='titel_nl' value="titel nl" /><br/><input type='text' name='titel_fr' value="titel fr"/></td>
        <td><input type='file' name='text_nl' id='text_nl' accept="image/*"/><br/><input type='file' name='text_fr' id="test_fr" accept="image/*"/></td>        
        <td class="vTop"><input type="submit" value="Bewaar"/></td>
    </tr>
    </form>

Часть, где значения отправляются в БД:

 $str_titel_nl = $_POST["titel_nl"]; 
  $str_titel_fr = $_POST["titel_fr"]; 
  $str_text_nl = $_FILES["text_nl"]["name"]; 
  $str_text_fr = $_FILES["text_fr"]["name"];  
       if(!empty($_FILES["text_nl"]["name"])){ 
       $tmp = $_FILES['text_nl']['tmp_name'] ;
        $foto = $_FILES['text_nl']['name'] ;
         $copied = copy($tmp, $images_nl.$foto); 
    unlink($tmp);  
       }

(конечно, вышеизложенное является лишь частью кода: но эта часть не будет работать:

       if(!empty($_FILES["text_nl"]["name"])){ 
       $tmp = $_FILES['text_nl']['tmp_name'] ;
        $foto = $_FILES['text_nl']['name'] ;
         $copied = copy($tmp, $images_nl.$foto); 
    unlink($tmp);  
       }

Код ниже этой части также работает нормально, поэтому нет ошибок, но и нет изображения. Кто-нибудь знает, где может быть проблема?

Большое спасибо заранее!

НАЙТИ ОТВЕТ Так что это действительно была проблема с разрешением. Все было 777, но в последней папке, в которую было помещено изображение, было 755. (/ fruits / img / 2012 / thumb /) большой палец был 755. Я просто пропустил его. Спасибо всем за помощь!

Ответы [ 4 ]

3 голосов
/ 07 февраля 2012

Ваш код загрузки очень грязный. Вместо использования copy вы должны использовать move_uploaded_file, а также проверить, что он действительно работает, и затем выполнить все необходимые действия.

Я также не уверен, почему каждая ваша строка начинается с <?php и заканчивается ?>? Вместо этого вы можете написать все как один блок, и я думаю, что это также имеет смысл и сделает ваш код более чистым.

Последнее, что я бы порекомендовал, это прочитать «Обработка загрузки файлов» из руководства PHP . Это может пролить свет на проблемы, с которыми вы столкнулись.

P.S. Попробуйте добавить сверху ini_set("display_errors","On"); error_reporting(E_ALL); и посмотрите, нет ли сообщений об ошибках.

0 голосов
/ 07 февраля 2012

Я опубликовал простое решение для загрузки файлов, не беспокоясь о реализации.

Нажмите, чтобы увидеть тему

проблема с загрузкой изображений в codeigniter 2.1.0

Пожалуйста, прочитайте этот раздел

в этом $uploader->getMessage(); вернет строку ошибки, связанную с ошибкой загрузки. Таким образом, вы можете понять, почему загрузка не удалась.

Спасибо

0 голосов
/ 07 февраля 2012
0 голосов
/ 07 февраля 2012

Вы можете попробовать это

$flag = @copy($temp, $move);
if ( $flag === true )
{
   print "Uploaded";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...