Vuzy
Новичок
Не могу понять в чем дело. Пишу скрипт который будет загружать картинку на сервер. Я в этом не силен. Поэтому решил опустить изменение размеров картинки и грузить как есть. Пока что. Но на стадии тестирования возникла ошибка следующего рода:
есть 2 формы которые отличаются друг от друга параметрами action. В одной sendnewfile в другой sendoldfile. Сделано для того что бы можно было загрузить новую фотку или обновить старую.
и скрипт обработчик:
Который у меня почему то не работает.
Возвращает ошибку: copy() [function.copy]: Filename cannot be empty.
Я так понимаю файл банально не передался. Но вот я не могу понять из-за чего. может вы мне поможете разобраться.
Вторая половина скрипта где файл обновляется работает на ура. Формы индентичны скрипт тоже за исключением того что в обновлении фото удаляется старая фото с сервера.
есть 2 формы которые отличаются друг от друга параметрами action. В одной sendnewfile в другой sendoldfile. Сделано для того что бы можно было загрузить новую фотку или обновить старую.
HTML:
<form enctype="multipart/form-data" action="uploadpic.php?form=sendnewfile&id=<? echo $_GET[id]; ?>" method="POST"><BR>
<!-- Поле MAX_FILE_SIZE должно быть указано до поля загрузки файла -->
<input type="hidden" name="MAX_FILE_SIZE" value="9999999999" /><BR>
<!-- Название элемента input определяет имя в массиве $_FILES -->
ЗАГРУЗИТЬ ФАЙЛ:<BR><input name="picture" type="file" /><BR>
<input type="submit" value="ЗАГРУЗИТЬ" /><BR>
</FORM>
PHP:
elseif($_GET[form]==sendnewfile)
{
$t=time();
$newname=md5($_FILES["picture"]["name"].$t);
$typefile=explode('.', $_FILES["picture"]["name"]);
$typefile=$typefile[1];
$file=$newname.".".$typefile;
if(copy($_FILES["picture"]["tmp_name"], "img/".$file))
{
//echo 'Файл загружен. обновляю информацию в БД';
$sql='UPDATE tovar SET photo="'.$file.'" Where id='.$_GET[id];
mysql_query($sql) or die (mysql_error());
//echo 'Файл добавлен в базу.';
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
}
else
{
echo 'ОШИБКА ЗАГРУЗКИ';
}
Возвращает ошибку: copy() [function.copy]: Filename cannot be empty.
Я так понимаю файл банально не передался. Но вот я не могу понять из-за чего. может вы мне поможете разобраться.
Вторая половина скрипта где файл обновляется работает на ура. Формы индентичны скрипт тоже за исключением того что в обновлении фото удаляется старая фото с сервера.
PHP:
elseif($_GET[form]==sendoldfile)
{
$t=time();
$newname=md5($_FILES["picture"]["name"].$t);
$typefile=explode('.', $_FILES["picture"]["name"]);
$typefile=$typefile[1];
$file=$newname.".".$typefile;
if(copy($_FILES["picture"]["tmp_name"], "img/".$file))
{
//echo 'новый файл загружен. Вношу информацию о новом файле и удаляю старый.';
unlink('img/'.$b[photo]);
$sql='UPDATE tovar SET photo="'.$file.'" WHERE id='.$_GET[id];
mysql_query($sql) or die (mysql_error());
//echo 'Поидее все хорошо.';
echo '<script type="text/javascript">';
echo 'window.location.href="'.$url.'";';
echo '</script>';
}
else
{ echo 'ОШИБКА ЗАГРУЗКИ'; }