• Welcome to Journal web site.

我是 PHP 程序员

- 开发无止境 -

Next
Prev

ThinkPHP6 上传图片代码demo - 老刘pro

Data: 2014-12-12 16:09:58Form: JournalClick: 9

Mc.老刘
ThinkPHP6 上传图片代码demo - 老刘pro - 博客园

本文展示了ThinkPHP6 上传图片代码demo, 代码亲测可用.

 

HTML部分代码

 <tr>
    <th class="font-size-sm" style="width:15%;height:100px;">商品图片</th>
    <td>
        <div class="custom-file">
            <div id="uploadImage" style="width:100px;height:100px;display: inline;"></div>
            <button id="uploadBtn" class="btn btn-outline-info font-size-sm">选择图片</button>
            <input type="file" name="imgFile" id="imgFile" style="display: none;">
        </div>
    </td>
</tr>

JS部分代码

 $(document).ready(function(){
    var input = $("#imgFile");
    // 将上传按钮绑定到input['file']上
    $("#uploadBtn").click(function(){
        input.trigger("click");
    });
    input.change(function () {
        // 如果value不为空,调用文件加载方法
        if ($(this).val() !== "") {
            doUpload(this);
        }
    });
});
 
// 上传图片
var SCOPE = {
    'uploadUrl': '{:url("' + urlPath +'/upload")}',
};
function doUpload() {
    var formData = new FormData($( "#myform" )[0]),
        appendDiv = $("#uploadImage"),
        imageUrl = '',
        imageDiv = '';
    $.ajax({
        url: SCOPE.uploadUrl ,
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function (result) {
            if(result.status === 1){
                appendDiv.empty();
                imageUrl = '/storage/' + result.data;
                imageDiv = '';
                appendDiv.append(imageDiv);
            }
        },
    });
}


ThinkPHP中的上传方法

 /**
 * 图片上传(ajax)
 * @return \think\Response|void
 * @throws \Exception
 */
public function upload()
{
    // 获取表单上传文件 例如上传了001.jpg
    $file = request()->file('imgFile');
    try{
        // 验证
        validate(['imgFile'=>[
            'fileSize' => 410241024,
            'fileExt' => 'jpg,jpeg,png,bmp,gif',
            'fileMime' => 'image/jpeg,image/png,image/gif', //这个一定要加上,很重要我认为!
        ]])->check(['imgFile' => $file]);
 
        // 上传图片到本地服务器
        $saveName = \think\facade\Filesystem::disk('public')->putFile( 'merchant', $file, 'data');
        $this->result(1, '图片上传成功!', $saveName, 'json');
    } catch (\Exception $e) {
        // 验证失败 输出错误信息
        return $this->exceptionHandle($e,
            '图片上传失败!' . $e->getMessage(),
            'json',
            '');
    }
}
Name:
<提交>