Php 上传文件

使用的是ThinkPhp框架

  1. 在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是为了再点击上传后,不去跳转到别的页面,保持在当前页面。

  1. 在控制器中加入上传代码

限制了只能上传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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值