|
|
|
| Скажите пожалуйста в каком случае элемент $_FILES[$file]['error'] принимает значение отличное от нуля? Я попробовал выбрать файл через форму, затем удалить файл и отправить данные, в результате в каталоге появился файл с нужным именем и расширением объёмом 0 байт, а элемент ['error'] равен 0 типа ошибок нет | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 19:43)
| | Значение 1 (UPLOAD_ERR_INI_SIZE) загружаемый файл превышает размер директивы upload_max_filesize, заданной в конфигурационном файле php.ini
Значение 2 (UPLOAD_ERR_FORM_SIZE) загружаемый файл превышает значение MAX_FILE_SIZE, заданное в HTML-форме
Значение 3 (UPLOAD_ERR_PARTIAL) загружена лишь часть файла.
Значение 4 (UPLOAD_ERR_NO_FILE) файл не загружен (вообще-то именно эту ошибку вы должны бы получить).
Значение 6 (UPLOAD_ERR_NO_TMP_DIR) не найдена временная директория.
Значение 7 (UPLOAD_ERR_CANT_WRITE) ошибка записи файла на диск.
Значение 8 (UPLOAD_ERR_EXTENSION) загрузка файла прекращена расширением. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2009 в 20:21)
| | Значение 4 (UPLOAD_ERR_NO_FILE) файл не загружен (вообще-то именно эту ошибку вы должны бы получить).
но не получил. пробовал и на вин и на линуксе. | |
|
|
|
|
|
|
|
для: cheops
(11.10.2009 в 20:21)
| | <form action="test.php" method="post" enctype="multipart/form-data" name="uploader">
<input name="file" type="file" /><br />
<input name="submit" type="submit" value="UPLOAD" />
</form>
<?php
print_r($_FILES);
$file='file';
if(!empty($_POST['submit']))
{
if (is_uploaded_file($_FILES[$file]['tmp_name'])) move_uploaded_file($_FILES[$file]['tmp_name'], "images/" . $_FILES[$file]['name']);
}
?> | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 20:43)
| | $file='file'; при такой переменной файл не должен загружаться | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.10.2009 в 20:55)
| | сделал другое имя и значение в скрипте и форме - ничего не изменилось
дамп массива
Array (
[pic] => Array (
[name] => 333.jpg
[type] => application/octet-stream
[tmp_name] => D:\php16D6.tmp
[error] => 0
[size] => 0 )
) | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 21:00)
| | значение поля "file" попадает в массив $_FILES, и получается, что переменной $file надо присвоить значение $_FILES['file']['name'] и переписать строку "move_uploaded_file($_FILES[$file]['tmp_name'], "images/" . $_FILES[$file]['name']);" на "move_uploaded_file($_FILES[$file]['tmp_name'], "images/" . $files);" | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.10.2009 в 21:07)
| | окей, теперь move_uploaded_file не срабатывает, но [error] по прежнему 0 | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 21:20)
| | вот только надо было и в остальных случаях поменять $file на просто 'file'
"move_uploaded_file($_FILES['file']['tmp_name'], "images/" . $file);" | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.10.2009 в 21:42)
| | в каких остальных случаях? | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 21:49)
| | если значение input name="file" попадает в массив, в $_FILES['file']['name'] и присваивается переменной $file, то в $_FILES['$file']['tmp_name'] $file надо заменить на file и т.д. | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.10.2009 в 22:53)
| | ты можешь показать пример кода где используется обработчик ошибок связанных с загрузкой файла? | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:03)
| | ну сначала надо довести до ума твою форму загрузки файла.
у тебя файлы загружаются в указаную директорию? | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:03)
| | ну сначала надо довести до ума твою форму загрузки файла.
у тебя файлы загружаются в указаную директорию? | |
|
|
|
|
|
|
|
для: Slo_Nik
(11.10.2009 в 23:20)
| | да.
вот пример, если для файлового интпута написать value= что-нибудь, например http://localhost/1.gif а его не будет, то при загрузке будет ошибка с кодом 4. но странно что если по нормальному самому выбрать файл, удалить/переименовать его, а потом нажать 'отправить', то ошибки не выведется а будет создан файл 0 байт | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:51)
| | Насколько я помню, нельзя по умолчанию вставить адрес файла в value тэга input | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:51)
| |
<?php
print <<< FILE
<form method="post" enctype="multipart/form-data">
название: <br>
<input type='text' name='name'><br>
<input type='file' name='file'>
<input type='submit' name='sub' value='загрузить'>
</form>
FILE;
if(isset($_POST['sub'])){
if($_FILES['file']['error'] == ""){
move_uploaded_file($_FILES['file']['tmp_name'],"images/".$_FILES['file']['name']);
echo "файл загружен в указанную директорию.";
}
else{
echo "Ошибка при загрузке файла на сервер.<br>".$_FILES['file']['error'];
}
}
?>
|
вот , на скорую руку... будет выводить ошибки | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.10.2009 в 00:20)
| | спасибо, мой код мало чем отличался от этого, но я по прежнему не понимаю почему если выбрать файл в форме, потом удалить его и нажать 'отправить' ['error'] будет равен 0 и создастся пустой файл | |
|
|
|
|
|
|
|
для: vastvision
(12.10.2009 в 12:09)
| | >['error'] будет равен 0 и создастся пустой файл
потому скрипт некорректно обрабатывает ситуации. error=0 это вовсе не аргумент для создания файла. | |
|
|
|
|
|
|
|
для: vastvision
(12.10.2009 в 12:09)
| | если выбрать файл, а потом удалить его из поля, то выдаёт ошибку "4", а вот почему у тебя выдаёт "0"....
покажи полностью свой скрипт. | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:51)
| | для файлового инпута нельзя прописать валуе...это запрещено с целей безопасности. | |
|
|
|
|
|
|
|
для: TetRiska
(12.10.2009 в 01:02)
| | На своей локальной машине я это сделал в целях эксперимента | |
|
|
|
|
|
|
|
для: vastvision
(12.10.2009 в 12:05)
| | Нельзя - это значит не запрещено вам руками делать, а запрещено делать в принципе, вы хоть наизнанку выворачивайтесь, браузер не позволит вставить значение по умолчанию | |
|
|
|
|
|
|
|
для: vastvision
(11.10.2009 в 23:03)
| | хотя проверку файла можно делать до того как будет совершена попытка загрузки указаного файла в директорию.
при нажатии кнопки формы выполняешь проверку, а потом, если всё нормально, выволняешь загрузку файла на сервер.
файл можно проверять по расширению, по типу, по размеру и при наличии ошибок выводить предупреждение в окно браузера. | |
|
|
|