Привет всем... вот такой вопрос... Нужно сделать 2 формы загрузки файла 1 по http 2 с локального компа ----- По время загрузки файл меняет имя на то что указываю я.... + в файл пишет имя файла... Файл должен переименовываться, не трогая расшерение... + можно грузить только файл определенного формата... кто может подсказать код?
А чтотут сложного? <form action=..><input type=file><input type=submit></form> Поищи в поисковике маны на тему php + upload file например вот статья про Upload http://www.phpclub.ru/detail/article/upload а вот стетья про запись в файл http://www.kurepin.ru/php/files/
PHP: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Загрузка файла на сервер</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php $do=$_GET["do"]; switch ($do) { case "upload": $uploaddir='upload/'; $userfile=$_FILES['userfile']['name']; $ext=strrchr($userfile, '.'); if ($ext == '.zip') die ("Нельзя загружать файлы с расширением zip"); //if ($ext !== '.zip') die ("Можно загружать только файлы с расширением zip"); $newfilename=date("U")."$ext"; move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $newfilename); echo "Имя файла на сервере: $uploaddir$newfilename<br> Тип файла:".$_FILES['userfile']['type']; $log = fopen("fileupload.log", "a"); fwrite($log, "$newfilename\n"); break; default: ?> <form method="POST" action="?do=upload" enctype=multipart/form-data> <input type="file" name="userfile"> <input type="submit"> </form> <? } ?> </body> </html>
Твой скрипт уязвим в нескольких местах. Во-первых если уж такая пьянка, нужно исходить от обратного, проверять допустимые значения, а не недопустимые. Во-вторых, всегда нужно проверять данные при записи в файл. У тебя они идут туда в необработаном виде.
Ну во первых у меня там можно заменить Code: if ($ext == '.zip') die ("Нельзя загружать файлы с расширением zip"); на Code: if ($ext !== '.zip') die ("Можно загружать только файлы с расширением zip"); Во вторых это только пример скрипта, а не полноценно работающая версия. Если это необходимо, дописать пару условий типа PHP: if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $newfilename)) { echo "Имя файла на сервере: $uploaddir$newfilename<br> Тип файла:".$_FILES['userfile']['type']; $log = fopen("fileupload.log", "a"); if (fwrite($log, "$newfilename\n")) { еcho "лог записан"; } else { echo "ошибка записи в лог"; } } else { echo "ошибка загрузки"; } не составляет особого труда
уже загруженного - так: PHP: //Example #1 filesize() example <?php // outputs e.g. somefile.txt: 1024 bytes $filename = 'somefile.txt'; echo $filename . ': ' . filesize($filename) . ' bytes'; ?>