Подобряване на PHP скрипт за качване на файлове

svetlio_2009

Registered
Здравейте! Имам малък код на PHP, който качва само картинки. Молбата ми е да помогнете, ако някой има време разбира се да го допълните, за да мога да качвам не само снимки, но и текстови файлове написани на Word 2003, както и на Word 2010 и на Notepad. Въобще да могат да се допускат за качване и текстови файлове, това ми е много важно.
И накрая ако е възможно качените файлове да се качват в папка на потребителя, който ги качва. /т.е. при всяко натискане на бутона за качване да се създава папка с името на потребителя или пък с датата и часа на качване /.
Тепърва започвам да чета за PHP и не го разбирам много, затова моля за помощ. Благодаря Ви! Ето и кода отдолу:

Код:
<?php
if ($_FILES['file']['name'] !=""){
if ($_FILES['file']['name'] != ""){
   if ($_FILES['file']['type'] == "image/jpeg"){
      copy($_FILES['file']['tmp_name'], $_POST['name']) or die ("Файлът не може да бъде качен!");
   }else{ die("Непозволено разширение!"); }
}else{ die("Няма избран файл!"); }  
}
#Проверява дали има избран файл и дали може да бъде копиран.
#Синтаксис на функцията copy() : copy("файл","ново име на файла")
#В нашият слуай това е текущото име на файла и въведеното в формата ново име
?>
<html>
<head>
<title>Формуляр за качване</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
$name = $_FILES['file']['name']; //Името
$size = $_FILES['file']['size']; //Големината (в байтове)
$type = $_FILES['file']['type']; //Вида на файла
?>
<a href="<?php echo ("$name"); ?>">Файлът</a> с размер <b><?php echo ("$size"); ?></b> байта от тип <b><?php echo ("$type"); ?></b> е качен успешно!
</body>
</html>

А това е самата форма в HTML:

Код:
<html>
<head>
<title>Формуляр за качване</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Файл:<input type="file" name="file" size="40"><br>
Ново име:<input type="text" name="name" size="50">
<input type="submit" value="Качване">
</form></body></html>
 
Можеш да разшириш проверката за MIME type по следния начин:
Код:
 if ($_FILES['file']['type'] == "image/jpeg" || $_FILES['file']['type'] == "application/msword" || $_FILES['file']['type'] == "application/vnd.openxmlformats-officedocument.wordprocessingml.document"){
Това ще позволи качване на .doc и .docx файлове.
Ето списък с някои MIME types - http://www.freeformatter.com/mime-types-list.html
За по-удобно можеш да ги въведеш в масив и да направиш проверката с in_array():
Код:
$allowed_types = array("image/jpeg",
"application/msword",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document");
if(in_array($_FILES['file']['type'],$allowed_types)){
 

Back
Горе