2015-03-12 2 views
0

Мой код выглядит следующим образом. Поэтому, когда я загружаю файл с именем Koala.jpg, отображается предупреждение - Warning: copy (Koala.jpg): не удалось открыть поток: такого файла или каталога в E: \ XAMPP \ HTDOCS \ Форум \ upload.php по строке 4 не удалось скопировать файл! .. Пожалуйста решить эту проблему срочно ..Как загрузить файл в определенную папку с помощью php?

Select a file to upload: <br /> 
      <form action="upload.php" method="post" enctype="multipart/form-data"> 
      <input type="file" name="file" size="50" /> 
      <br /> 
      <input type="submit" value="Upload File" /> 
      </form> 

***upload.php*** 

<?php 
if($_FILES['file']['name'] != "") 
{ 
    copy($_FILES['file']['name'], "/uploads") or 
      die("Could not copy file!"); 
} 
else 
{ 
    die("No file specified!"); 
} 
?> 
<html> 
<head> 
<title>Uploading Complete</title> 
</head> 
<body> 
<h2>Uploaded File Info:</h2> 
<ul> 
<li>Sent file: <?php echo $_FILES['file']['name']; ?> 
<li>File size: <?php echo $_FILES['file']['size']; ?> bytes 
<li>File type: <?php echo $_FILES['file']['type']; ?> 
</ul> 
</body> 
</html> 
+0

Используйте [move_uploaded_file()] (http://www.php.net /manual/en/function.move-uploaded-file .php), а не [copy()] (http://www.php.net/manual/en/function.copy.php) .... загруженные файлы переходят в временную директорию, и move_uploaded_file() знает об этом ; но вам также нужно указать папку как путь к файловой системе, а не веб-путь; и пункт назначения должен содержать имя файла, а также путь –

+0

. Вы не проложили путь. – starkeen

ответ

1

Заменить функцию копирования, следуя

$destFile = "/root/mysite/upload_files/".$_FILES['file']['name']; 
move_uploaded_file($_FILES['file']['tmp_name'], $destFile); 

Обратите внимание на расположение адресата файловой системы не URL. Также путь файловой системы относится к самому высокому корню, а не к домашнему URL-адресу веб-сайта.

+0

Вы не должны использовать 'copy' для этой цели, потому что файл может находиться во временной папке. Вместо этого предпочитаем 'move_uploaded_file'. – ByteHamster

+0

Да, я знал это, но ответ был связан с вопросом, так или иначе я отредактировал свой ответ. –

+0

Место назначения файла просто будет либо корнем домена, либо текущей версией каталога PHP, ни одна из которых, вероятно, не является хорошим местом для удаления файла, это также не иллюстрирует OP, что '$ destFile' должен быть файловым путем а не имя файла или URL-адрес браузера. – Martin

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