2012-02-28 3 views
1

У меня были проблемы с простым скриптом php, в котором я могу загрузить файл в определенную папку. Я пробовал несколько способов сделать это, и у меня все еще не было успеха.bool (false) Загрузка файла

Любые ошибки в моем коде или советы по устранению проблемы будут изящно приняты.

Главная Php Код:

<p>Browse For a File on your computer to upload it!</p> 
<form enctype="multipart/form-data" action="upload_photos.php" method="POST"> 
Choose Photo: 
<input name="userfile" type="file" /><br /> 
<input type="submit" value="Upload Photo" /> 


<?PHP  


if ($userfile_size>250000) 
    {$msg=$msg."Your uploaded file size is more than 250KB so please reduce the file size and then upload.<BR>"; 
$file_upload="false";} 

else{ 

if (!($userfile_type<>"image/jpeg" OR $userfile_type<>"image/tiff" OR  $userfile_type<>"image/png")) 
    {$msg=$msg."Your uploaded file must be of JPG, PNG, or tiff. Other file types are not  allowed<BR>"; 
$file_upload="false";} 

} 
    ?> 

</form> 

</label> 
</form> 

Php код, который призван по щелчку (upload_photos.php)

<?php 
$target_path="uploads/"; 

chmod("uploads/", 0755); 
$target_path=$target_path . basename($_FILES['uploadedfile']['name']); 

$test=move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path); 

if($test) { 
    echo "The file ". basename($_FILES['uploadedfile']['name']). 
    " has been uploaded"; 
} else{ 
    echo "There was an error uploading the file, please try again!"; 
    var_dump($test); 
} 
?> 

Я не понимаю, почему мои конечные результаты [при нажатии "Загрузить файлы" Button] включить только следующие результаты:

«Ошибка при загрузке файла. Повторите попытку! Bool (false)»

Еще одна вещь: я также попытался использовать полный путь к папке компьютера для $ target_path и chmod.

Кто-нибудь видит, что я делаю неправильно?

+0

Кому принадлежит каталог 'uploads'? Если это не 'apache' (или любой пользователь, на котором работает сервер), это, вероятно, не сработает. – spencercw

ответ

2

У вас есть <input name="userfile", но затем используйте $_FILES['uploadedfile'] в своем скрипте - используйте тот или иной.

Кроме этого, убедитесь, что работало chmod, и папка доступна для записи.

+0

Джо, большое вам спасибо. Я много раз искал ответы на эту проблему. Я искренне ценю вашу помощь, и проблема решена. Вы спасатель жизни. –

1

bool(false) - вывод var_dump($test);, что указывает на то, что move_uploaded_file возвращает false.

В качестве основного шага отладки, вы должны попробовать var_dump($_FILES), чтобы убедиться, что вы подключаетесь правильный элемент этого массива (я могу сказать от вашего кода, который вы не, индекс будет name атрибутом вашей <input type="file"/> элемент).

У вас есть хотя бы один серьезный недостаток в вашей логике ... Код PHP в вашей форме загрузки не имеет никакого смысла. Этот блок PHP-кода будет выполняться на стороне сервера до того, как пользователь когда-либо загрузит файл. Он не может работать. Две переменные, которые вы проверяете, $userfile_size и $userfile_type, не определены нигде.

+0

Да, я забыл взять эти 2 переменные, это то, с чем я сейчас играю (ограничения файлов и т. Д.). –

Смежные вопросы