Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Закачка файла скриптом с винта


Автор: Denn 20.10.2003, 12:15
Приветствую всех. Такая проблема:
Простенький скриптик на cdmagazin.ru/test.php
его тело:
<?
if(copy("E:\\1.jpg", "1.jpg")){echo 'Работает!';}
?>

PHP выдаёт ошибку:

Warning: copy(E:\1.jpg) [function.copy]: failed to create stream: No such file or directory in /home2/cdmagazinru/www/test.php on line 2

В чём проблемаconfused.gif

Автор: frost 20.10.2003, 12:17
Цитата
E:\\1.jpg

Извините, я в пхп ни в зуб, а в нём так надо - два бэкслэша?

Автор: Unregistered 20.10.2003, 12:22
По правилам, один работать не будет, читайте документацию...

Автор: MuToGeN 20.10.2003, 13:19
А фаилик e:\1.jpg на сервере-то существует? Там вообще e:\ есть?

Автор: Denn 20.10.2003, 15:24
Нет, поставим вопрос по другому. Каким кодом можно сделать так, чтобы пользователь мог закачать на сервер любой файл? Естественно посредством формы.

Автор: MuToGeN 20.10.2003, 15:33
> Каким кодом можно сделать так, чтобы пользователь мог закачать на сервер любой файл?

См. FAQ

Автор: Unregistered 24.11.2003, 16:46
эт самое а у тебя книжка наверна есть такая большая красная "пхп для профессионалов"

вот там и почитай

Автор: Root 25.11.2003, 22:54
Для таких целей используется функция move_uploaded_file()


Автор: pascal 26.11.2003, 13:17
Цитата
Для таких целей используется функция move_uploaded_file()

Настоятельно не рекомендую!!!
всто неё используй copy и unlink

Автор: MuToGeN 26.11.2003, 14:10
Цитата
Настоятельно не рекомендую!!!
Почему?

Автор: pascal 26.11.2003, 14:22
Цитата(MuToGeN @ 26.11.2003, 14:10)
Почему?

Да по тому что особенно бесплатные хостинги используют всяческие извращения чтобы перекрыть доступ к некоторым возможностям и повысить безопасность и я очень часто встречаю ситуации когда файлы загружаются с никому непонятными правами доступа, и потом начинаются глюки с этми файлами, а функция copy копирует файл создавая при этом самый нормальный файл копию, а старый удаляется...

Автор: MuToGeN 26.11.2003, 15:01
понятно

Автор: r_inferno 29.11.2003, 16:12
Подобная проблема:
Есть первый файл с формой для заливки файла:
<form action = "uploadpr.php" method="post" name = "form1">
<input type="hidden" name ="MAX_FILE_SIZE" value="2000000">
Залить файл: <input type="file" name="thefile"><br><br>
<input type="submit" name="Submit" value="Залить">
</form>
файл uploadpr.php:
<?php
$aNewName=dirname($PATH_TRANSLATED)."/file.zip";
if (is_uploaded_file($thefile)) move_uploaded_file($thefile, $aNewName);else print "фигня вышла<br>";
print "thefile: $thefile<br>thefile_name: $thefile_name<br>";
?>
Так вот, переменная $thefile становиться равной D:\\p\\f.zip (это имя файла, которой я хотель залить), а $thefile_name - пустая.
Почему так? Ведь вроде все правильно.

Автор: Root 30.11.2003, 01:15
Вот ещё код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<?

CheckAuth();

if($mode == "gen_form")
{
$cnt = 0;
print '<align="center"><b>Выберите файлы</b></center>';
print '<form action="go.php?module=news&submod=upload_graph&mode=upload" method="post" enctype="multipart/form-data" name="form1">';
while($cnt != $files_count)
{
print "<input type=\"file\" name=\"file".$cnt."\"><br>";
$cnt++;
}
print "<input type=\"hidden\" name=\"files_count\" value=\"$files_count\">";
print "<div align=\"center\"><input type=\"submit\" value=\"Закачать\"></div></form>";
}
else if($mode == "upload")
{
$dest = $_SERVER['DOCUMENT_ROOT']."/newsimage/"; //Каталог, куда качаем файлы
$count = 0; //Первый файл
print "<b>На сервер были закачаны следующие файлы:</b> ";
while($count != $files_count)
{
$fname = "file".$count; //Имя файла
$serv_name = "file".$count."_name";
if (move_uploaded_file($$fname, $dest.$$serv_name))
{ print $$serv_name.", "; }
else {print "Ошибка в файле:".$$serv_name.", "; }
$count++;
}
print "<a href=\"go.php?module=news\">Вернуться к управлению новостями</a>";
}
else{
print "
<align=\"center\"></b>Закачать графику к новостям<b></center>
<form action=\"go.php?module=news&submod=upload_graph&mode=gen_form&uid=".$uid."\" method=\"post\" enctype=\"multipart/form-data\" name=\"form1\">
<table width=\"75%\" border=\"0\" align=\"center\" cellpadding=\"2\" cellspacing=\"2\">
<tr>
<td>Сколько файлов загрузить?</td>
<td><input name=\"files_count\" type=\"text\" id=\"files_count\"></td>
</tr>
</table>
<br><div align=\"center\">
<input type=\"submit\" value=\"Ответ\">
</div>
</form>
";
}
?>

Автор: Wowa 30.11.2003, 02:16
Цитата
Так вот, переменная $thefile становиться равной D:\\p\\f.zip (это имя файла, которой я хотель залить), а $thefile_name - пустая.
Почему так? Ведь вроде все правильно.


ты забыл:
enctype="multipart/form-data"

Автор: MuToGeN 30.11.2003, 05:37
Цитата
Так вот, переменная $thefile становиться равной D:\\p\\f.zip (это имя файла, которой я хотель залить), а $thefile_name - пустая.
$_FILES[thefile][tmp_name], $_FILES[thefile][name], $_FILES[thefile][size] etc.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)