使用的是ThinkPhp框架
在index.html中加入表单
<body>
<form action="index/upload" method="post" enctype="multipart/form-data" target="frameName" >
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="提交">
</form>
<iframe src="" width="200" height="200" frameborder="0" name="frameName" style="display:NONE" ></iframe>
</body>
这边的iframe是为了再点击上传后,不去跳转到别的页面,保持在当前页面。
在控制器中加入上传代码
限制了只能上传apk文件。
public function upload(){
$allowedExts = array("apk");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp); // 获取文件后缀名
$result=false;
if (($_FILES["file"]["type"] == "application/vnd.android.package-archive")
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
$error='Error: '. $_FILES["file"]["error"];
echo "<script>alert($error)</script>";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],'/opt/lampp/htdocs/CheckApkUpdate/public/' . $_FILES["file"]["name"]);
$result= true;
}
}
else
{
echo "<script>alert('Error: Unsupported format')</script>";
}
if ($result){
echo "<script>alert('success')</script>";
}
}
默认上传会到opt/lampp/temp下,执行结束会删除临时文件。
重点:1. public要给777权限,不然无法把文件移动过去。
2. 文件大小,默认是40M,如果要上传超过40M的,去修改opt/lampp/etc/php.ini
; Maximum size of POST data that PHP will accept.
; http://php.net/post-max-size
post_max_size=140M
upload_tmp_dir="/opt/lampp/temp/"
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize=140M