signed

QiShunwang

“诚信为本、客户至上”

TP6 php 上传到UFILE.

2020/8/20 11:46:05   来源:

TP6引入UFILE的SDK还有点问题。弄了很久,后来发现这样很简单。用put简单上传方式。

点这里下载SDK:https://github.com/ufilesdk-dev/ufile-phpsdk

<?php
namespace app\controller;

use app\BaseController;
use think\facade\View;
use think\facade\Request;
use think\facade\Db;

require __DIR__ . '\..\..\extend\ufile\v1\ucloud\conf.php';
require __DIR__ . '\..\..\extend\ufile\v1\ucloud\http.php';
require __DIR__ . '\..\..\extend\ufile\v1\ucloud\proxy.php'; 

class Upload extends BaseController
{
     
    public function index()
    {
        //conf.php里需要设置你的key,public
		//存储空间名
		$bucket = "dongu"; 
        //上传后的文件路径和名字。
		$key    = "php/" . date_format(date_create(),"Ymd/His") . rand(1000,10000) . ".jpg";  
		$file = $this->request->file('file'); 
		 
		list($data, $err) = UCloud_PutFile($bucket, $key, $file);
		if ($err) { 
			return json($err);
		}
		  // echo "ETag: " . $data['ETag'] . "\n";
		$r['ETag'] =   $data['ETag'] ;
		$r['src'] =   "http://dongu.cn-gd.ufileos.com/"  . $key ; 
 
    	return  json($r);
    }
 
}

然后做了个测试页面:

<script type="text/javascript" src="/assets/libs/jquery/dist/jquery.min.js"></script> 

<form>
	<input type="file" name="photo" id="photo" value="" >
</form>

<script type="text/javascript">
	
$(function(argument) {
	$("#photo").change(function(argument) { 

		var formData = new FormData();
		var files = $("#photo")[0].files[0];

		//⑦将name 和 files 添加到formData中,键值对形式
		formData.append("file", files); 
                $.ajax({
                    url: "http://www.tp6.com/upload/index",
                    type: 'POST',
                    data: formData,
                    processData: false,// ⑧告诉jQuery不要去处理发送的数据
                    contentType: false, //  
                    success: function (responseStr) {
                      
                        alert("成功啦");
                    } 
                   }); 
	})
});

</script>

不过貌似ETage多了一个引号。不知怎么去掉。知道的大师可以留言下。

还好只用到src。