去年的时候,为了解析和比较两个或两组excel文件内容的异同,我尝试着在PHP服务器上练习了单文件和多文件的上传,文件上传在表单操作里面用的不多,代码写起来之后还真是各种问题,各种查资料,最终得以解决,现在有时间了,把相关代码分享出来,让大家少走弯路,即插即用。
提示:以下是本篇文章正文内容,下面案例可供参考
一、代码示例
1.单文件上传表单
代码如下(示例):
<form method="post" action="compare_single.php" enctype="multipart/form-data" data-ajax="false">
<label for="fname">请上传系统导出文件:</label>
<input type="file" name="sysfile" id = "sysfile" required >
<label for="fname2">请上传签字表文件:</label>
<input type="file" name="schoolfile" id = "schoolfile" required >
<input type="submit" data-inline="true" value="提交" data-ajax="false">
</form>
2.多文件上传表单
代码如下(示例):
<form method="post" action="compare_class.php" enctype="multipart/form-data" data-ajax="false">
<label for="fname">请上传班期系统导出文件:</label>
<input type="file" name="sysfile[]" id = "sysfile" multiple="multiple" required >
<label for="fname2">请上传班期签字表文件:</label>
<input type="file" name="schoolfile[]" id = "schoolfile" multiple="multiple" required >
<input type="submit" data-inline="true" value="提交" data-ajax="false">
</form>
3.单文件上传处理
代码如下(示例):
echo "上传文件名: " . $_FILES["sysfile"]["name"] . "<br>";
echo "文件类型: " . $_FILES["sysfile"]["type"] . "<br>";
echo "文件大小: " . ($_FILES["sysfile"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置: " . $_FILES["sysfile"]["tmp_name"]. "<br>";
4.多文件上传处理
代码如下(示例):
for($i=0;$i<count($_FILES["sysfile"]['name']);$i++)
{
$name=$_FILES["sysfile"]["name"][$i];
$tmpname = $_FILES["sysfile"]["tmp_name"][$i];
}
表单中的data-ajax=“false”,是为了防止JqueryMobile默认使用Ajax提交。
二、总结
以上就是今天要讲的内容,主要注意几个关键字:form里面的enctype=“multipart/form-data”,以及多文件上传的input里面的name=“sysfile[]” ,multiple=“multiple”,上传处理时,使用$_FILES二维或三维数组。