如何上传包含用户名,密码,多个文件上传的HTML表单,然后使用PHP进行处理?
题
如何从单个html表单发布用户名,密码和多个二进制文件并使用php处理它?我不允许使用ajax。
解决方案
首先在PHP.net上查看这些页面
- 文件上传信息
-
move_uploaded_file
醇>
但是为了让你从这里开始,这里有几个存根文件。
<强> uploadForm.html 强>
<html>
<body>
<form action="processStuff.php" enctype="multipart/form-data" method="POST">
username: <input type="text" name="username" />
password: <input type="password" name="password" />
<p>
<input type="file" name="uploadFile[]" /><br />
<input type="file" name="uploadFile[]" /><br />
<input type="file" name="uploadFile[]" /><br />
<!-- Add as many of these as you want -->
</p>
<p>
<input type="submit" />
</p>
</form>
</body>
</html>
<强> processStuff.php 强>
<pre>
<?php
echo '<h2>Username & password</h2>'
echo "Username: {$_POST['username']}\nPassword: {$_POST['password']}";
echo '<hr />';
echo '<h2>Uploaded files</h2>'
foreach($_FILES['uploadFile']['tmp_name'] as $i => $tempUploadPath) {
if (empty($tempUploadPath)) {
// this <input type="file" /> was "blank"... no file selected
} else {
// a file was uploaded
echo '<strong>A file named "', $_FILES['uploadFile']['name'][$i], "\" was uploaded</strong>\n";
echo "\ttemporarily stored at: ", $tempUploadPath, "\n";
echo "\tmime type: ", $_FILES['uploadFile']['type'][$i], "\n";
echo "\tsize: ", $_FILES['uploadFile']['size'][$i], " bytes\n";
echo "\terror code",
((empty($_FILES['uploadFile']['size'][$i])
? '<em>no errror</em>'
: $_FILES['uploadFile']['size'][$i])),
"\n\n";
// do something useful with the uploaded file
// access it via $tempUploadPath and use move_uploaded_file() to move
// it out of the temp path before you manipulate it in any way!!!!!
// see http://us3.php.net/features.file-upload
// and http://us3.php.net/manual/en/function.move-uploaded-file.php
}
}
?>
</pre>
HTML文件显示如何设置enctype
<!>放大器的<form>
;第二个表单显示如何访问提交的用户名<!> amp;密码<!> amp;最后如何循环每个上传的文件。
如上所述,您必须尽快移动文件。它们被上传到临时位置,系统将删除它们,除非您处理它们。所以先把它们移到某处,然后随心所欲地做任何事情。
这有助于
阿林
其他提示
您应该使用$_FILES
超全局和move_uploaded_file()
函数来查看哪些文件已成功上传,并将它们移动到最终位置以防万一。
$_POST
超级全球将包含提交的用户名和密码。
不隶属于 StackOverflow