PHP文件上传器

时间:2012-07-05 00:07:03

标签: php html file file-upload

我想通过PHP上传文件。我希望这是一个下拉选项,而不是只上传到目录“上传”。所以基本上,我希望表单有一个下拉菜单和我选择的任何目录,它就是这样。那么,我怎样才能让它有下拉?

这是我的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$max_no_img=4; // Maximum number of images value to be set here

echo "<form method=post action='' enctype='multipart/form-data'>";
echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>";
for($i=1; $i<=$max_no_img; $i++){
echo "<tr><td>Images $i</td><td>
<input type=file name='images[]' class='bginput'></td></tr>";
}

echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>";
echo "</form> </table>";
while(list($key,$value) = each($_FILES['images']['name']))
{
    //echo $key;
    //echo "<br>";
    //echo $value;
    //echo "<br>";
if(!empty($value)){   // this will check if any blank field is entered
$filename =rand(1,100000).$value;    // filename stores the value

$filename=str_replace(" ","_",$filename);// Add _ inplace of blank space in file name, you can remove this line

$add = "upload/$filename";   // upload directory path is set
//echo $_FILES['images']['type'][$key];     // uncomment this line if you want to display the file type
//echo "<br>";                             // Display a line break
copy($_FILES['images']['tmp_name'][$key], $add); 
echo $add;
    //  upload the file to the server
chmod("$add",0777);                 // set permission to the file.
}
}
?>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

在表单中添加如下所示的HTML:

Upload Directory: 
<select name="uploadDir">
  <option value="uploads">Uploads/</option>
  <option value="uploads2">Uploads2/</option>
</select>

通过将$ add更改为:

,将其与一些PHP Magic一起使用
$add = "{$_POST['uploadDir']}/$filename";
瞧,瞧! :D确保在目录上进行某种验证,因为它非常不安全,但是给你关于如何做的概念;)

祝你好运!