搜索 |
需要修改的地方:
1.如果是中文而且是utf8编码就需要修改保存附件的save()方法:默认位置如图
2.需要修改controller的ajaxreturn()方法把header信息去掉
实现方法:
模板页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta "charset=UTF-8">
<title>Document</title>
<link rel="stylesheet" href="__PUBLIC__/css/bootstrap.min.css">
<js href="__PUBLIC__/Js/jquery-1.11.1.js" />
<js href="__PUBLIC__/Js/ajaxfileupload.js" />
<js href="__PUBLIC__/Js/layer/layer.js" />
<style type="text/css">
.box{
width: 100%;
margin-top: 200px;
overflow: hidden;
border: 1px solid #ccc;
/* float:left;*/
}
input.uploadFile{
position:absolute;
left:0px;
top:0px;
opacity:0;
filter:alpha(opacity=0);
cursor:pointer;
width:102px;
height:36px;
overflow: hidden;
}
.textbox{
margin-bottom:-1px;
}
a.link{
float:left;
display:inline-block;
padding:4px 16px;
color:#fff;
font:14px "Microsoft YaHei", Verdana, Geneva, sans-serif;
cursor:pointer;
background-color:#0099ff;
line-height:28px;
text-decoration:none;
}
.addDiv{
border-bottom:1px solid #d8d8d8;
height:40px;
line-height:40px;
overflow:hidden
}
.addDiv:first-child{
border-top:1px solid #d8d8d8; ;
}
.addDiv input{
display: none;
}
.chooseFile{
position: relative;
overflow: hidden;
border-bottom:1px solid #d8d8d8;
margin-bottom: -1px;
}
</style>
<script type="text/javascript">
function deletejiedian(el){
var obj=$(el).parent().find("input:eq(1)");
$(el).parent().animate({"height":"0px"},function(){
$(el).parent().remove();
});
$.post("deleteFile.php",{url:obj.val()},function(ret){},"json")
};
function getFile(){
$.ajaxFileUpload({
url:'__URL__/upload',//处理脚本
secureuri:false,//是否安全提交
fileElementId:'upload_file',//file控件id
dataType : 'JSON',
type: 'post',
success : function (data){
alert(JSON.stringify(data));
var result=JSON.stringify(data).replace("\"","").replace("}\"","}").replace(/\\"/g,"\"").replace(/\\\\u/g,"\\u").replace(/\\\\\//g,"\/");
// alert(result['savename']);
result=eval('(' + result + ')');
alert(result['savename']);
// $("#haha").html(JSON.stringify(data))
},
error: function(data){
alert('上传失败了');
}
});
}
</script>
<div id="haha"></div>
<div class="box">
<div class="chooseFile">
<a href="javascript:void(0);" class="link">请选择文件</a>
<input type="file" id="upload_file" class="uploadFile" name="upload_file[]" onchange="getFile()" />
</div>
<form action="charu.php" method="post" enctype="multipart/form-data">
<input type="submit" value="提交"><br>
姓名:<input type="text" name="xingming"><br>
电话:<input type="text" name="tel">
<input type="file" name="upload_file">
<div id="copyFile" class="textbox"> </div>
</form>
</div>
</body>
</html>
控制器
<?php
namespace Admin\Controller;
use Think\Controller;
header("Content-Type:text/html;charset=UTF-8");
class IndexController extends Controller {
public function index(){
$this->display(); // 输出模板
}
public function upload(){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 3145728 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg','xls','doc','xlsx');// 设置附件上传类型
$upload->rootPath = './Uploads/'; // 设置附件上传根目录
$upload->subName = date("Ym",time())."/".date("Ymd",time());
$upload->savePath = 'yjfiles/'; // 设置附件上传(子)目录
$upload->saveName =array('myfun','__FILE__');
// 上传文件
$info = $upload->uploadOne($_FILES['upload_file']);
if(!$info) {// 上传错误提示错误信息
$this->error($upload->getError());
}else{// 上传成功
// $this->success('上传成功!');
$fileinfo['savename']=$info['savename'];
$fileinfo['message']='我是测试';
$fileinfo['status']=1;
$fileinfo['savepath']="./Uploads/".$info['savepath'].$info['savename'];
// echo json_encode($fileinfo);
$this->ajaxReturn($fileinfo);
}
}
}
ajaxfileupload.js文件