Народ, подскажите плиз в чем дело! Никак не получается сделать нормлаьную загрузку файлов на сервер. Код загрузки примерно следующий (выброшены только не имеющие отношения к делу части) Код (Text): <?php if($active=="insert") { if(isset($_FILES['filename']['name'])){ echo "Uploading: ".$_FILES['filename']['name']."<br>"; $tmpName = $_FILES['filename']['tmp_name']; $newName = "./uploads/files/" . $_FILES['filename']['name']; if(!is_uploaded_file($tmpName) || !move_uploaded_file($tmpName, $newName)){ echo "FAILED TO UPLOAD " . $_FILES['filename']['name'] . "<br>Temporary Name: $tmpName <br>"; print_r($_FILES['filename']); } else { echo "File uploaded."; } } } else{ ?> <form name=form1 enctype="multipart/form-data" action="index_.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="300000" /> <input type="hidden" name="active" value="insert"> <table> <tr> <td> <b>Загружаемый файл:</b> </td> </tr> <tr> <td> <INPUT type="file" name="filename"> </td> </tr> <tr><td height=10></td></tr> <tr> <td align="right"> <INPUT type="submit" class=bluebutton> </td> </tr> </table> </form> <? } ?> В результате выполнения получае следующее: Ошибка возникает в функции move_uploaded_file() потому что на самом деле никакой файл в C:\inetpub\wwwroot\temp\ не создался! Перерыл уже вроде все, ничего не понимаю! Помогите плиз! Заранее спасибо!
В переменной $newName должен быть абсолютный путь а не относительный Абсолютный путь до файла обрабатываемого на данный момент можно взять из dirname(__FILE__); к нему дописать относительный до папки куда будет закачиваться файл Пример Код (Text): $newName = dirname(__FILE__); $newName .= DIRECTORY_SEPARATOR; $newName .= $_FILES['filename']['name']; Вместо move_uploaded_file() также можно использовать конструкцию file_put_contents($newName, file_get_contents($tmpName)); (таким образом использовать относительный путь) Но это будет "стилистически" не правильно и делать так не рекомендуется...
Дело в том, что даже с абсолютным путем возникнет ошибка - так как файла, который он пишет что создал в C:\temp\ а именно а именно phpD73B.tmp на самом деле там не существует! Вопрос как раз в том - почему он его не создает, хотя upload вроде проходит нормально
Он создаёт, просто как только скрипт оканчивает свою работу (или вылетает с ошибкой) он его удаляет...