前端js上传文件(.exe等)到TP5后台小做法
1、今天在写后台接口的时候,因为需要上传一些小软件.exe文件到后台tp5中,于是查询了一些资料,终于调通了,下面是最简单暴力的解决办法,如果需要改什么参数改什么路径的话请自行解决,或者有什么问题得话请留言
以下这是前端代码
<body>
<input type="file" name="file" id='file'/>
</body>
<script src="https://cdn.bootcss.com/jquery/3.3.0/jquery.min.js"></script>
<script type="text/javascript">
var uploadImg = document.getElementById('file'); //获取
uploadImg.onchange = function()
{
var fordata = new FormData();
fordata.append('file',this.files[0]);
//向服务器发送文件数据
if(fordata){
$.ajax({
type: "POST",
url:'http://www.***.****.****/user/user/doUploadSoftware', //请更换为自己要调用的方法或者页面
data:fordata,
dataType: "json",
cache: false,//上传文件无需缓存
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false, //必须
success: function (data){
console.log(data);
alert("上传成功!");
}
})
}
}
</script>
以下这是后台tp5代码
function doUploadSoftware(){
$file=request()->file('file'); //tp5封装好的方法,报错的话记得在最上面引入use think\Request;
$res=array(
"d"=>false,
"msg"=>"获取不到文件!",
"info"=>$file
);
//移动到框架应用根目录/public/uploads/目录下
if($file){
$info=$file->move(ROOT_PATH.'public'.DS.'uploads');
if($info){
//成功上传后 获取上传信息
//输出
$res=array(
"d"=>true,
"extension"=>$info->getExtension(),
"savename"=>$info->getSaveName(),
"filename"=>$info->getFilename()
);
}else{
$res=array(
"d"=>false,
"msg"=>"保存文件失败"
);
}
}
return json($res);
}
以上代码我亲自码过了一遍,有什么问题可以联系我或者留言
码字不易,希望您给点支持
初来乍到,欢迎交流.扣扣:532526447