我想从php中的列表框上传文件.
我能够通过使用<input type="file">我在http://www.tizag.com/phpT/fileupload.php上找到的内容来实现
但是,当我改变这种<input type="file">通过<select>
我正在尝试这种方式
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" />
<select name="uploadedfile" id = "fileName" size="3" style="width: 100%">
<option id = "uploadedfile" value="c:\text.txt">c:\text.txt</option>
</select>
<input type="submit" value="Upload File" />
</form>
Run Code Online (Sandbox Code Playgroud)
两种情况下PHP代码保持不变
<?php
$target_path = "uploads/";
$target_path = $target_path . basename( $_FILES['uploadedfile']['value']);
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
echo "The file ". basename( $_FILES['uploadedfile']['value']).
" has been uploaded";
} else{
echo "There was an error uploading the file, please try again!";
}
?>
Run Code Online (Sandbox Code Playgroud)
这是行不通的........
关心Hemant
<input type="file" />出于安全原因,您只能使用上传文件.这些输入类型显示文件选择框,允许用户以安全的方式选择文件.允许服务器像你试图那样选择要上传的任意文件将严重违反安全性.
例如,假设我实现了您的<select>基础选项(并且它有效).我可以选择要上传的Windows密码文件.我可以选择在预定义位置的各种讨厌的文件.
总而言之,您的HTML有两个具有相同名称的元素.哪一个实际发送到服务器将在某种程度上取决于您的浏览器和服务器.您真的只需要一个具有相同名称的表单元素.