代码如下
<div method="post" enctype="multipart/form-data">
<div class="form-group"><label class="col-sm-2 control-label">请上传证明图片:</label>
<div class="col-sm-4"><input type="file" class="form-control" name="img" id="img" onchange="previewImage(this)"></div>
<a class="btn btn-primary class1" type="submit">上传</a>
</div>
</div>控制器代码如下 public function upimg(){
$User = M('Certificate');
$Username = $_SESSION['username'];
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 0 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
$upload->rootPath = './Uploads/'; // 设置附件上传根目录
$upload->savePath = $Username; // 设置附件上传(子)目录
// $upload->saveName = array('uniqid','');
// 上传文件
// $img=I('img');
$info = $upload->uploadOne($_FILES['img']);
if(!$info) {// 上传错误提示错误信息
$res['msg'] = '失败';
//处理上传错误信息
}else{// 上传成功
vendor('aliyun.autoload');
$accessKeyId = "LTAIZN6h8nkdEXj8";//去阿里云后台获取秘钥
$accessKeySecret = "78K7pcv9BcB4JAPXkxhhMqAhUqme2p";//去阿里云后台获取秘钥
// $endpoint = "http://oss-cn-hangzhou.aliyuncs.com";//你的阿里云OSS地址
$endpoint="http://oss-cn-hangzhou.aliyuncs.com";
$ossClient = new \OSS\OssClient($accessKeyId, $accessKeySecret, $endpoint);
$bucket= "tg-cert-sys";//oss中的文件上传空间
$object = $Username.'/'.$info['savename'];//想要保存文件的名称
$file = './Uploads/'.$info['savepath'].$info['savename'];//文件路径,必须是本地的。
// $src = $file = './Public/Uploads/'.$info['imgfile']['savepath'].$info['imgfile']['savename'];
try{
$ossClient->uploadFile($bucket,$object,$file);
$_SESSION['img'] = $info['savepath'].$info['savename'];
unlink($file);
$res['img'] =$info['savepath'].$info['savename'];
// var_dump($res['img']);
// $this->ajaxReturn($res);
$imgurl=$info['savename'];
$status=1;
} catch(OssException $e) {
//echo "<script>alert ('11112222');</script>";
$res['msg'] = printf($e->getMessage() . "\n");
$res['status'] = '2';
}
}
$this->ajaxReturn($res);
}AJAX <script type="text/javascript">
$(function () {
$(".class1").click(function () {
ajaxFileUpload();
})
})
function ajaxFileUpload() {
$.ajaxFileUpload
(
{
url: 'upimg', //用于文件上传的服务器端请求地址
secureuri: false, //是否需要安全协议,一般设置为false
fileElementId: 'img', //文件上传域的ID
dataType: 'json', //返回值类型 一般设置为json
success: function (data) //服务器成功响应处理函数
{
var imgurl='http://certimg.tiangongyipin.com/'+data.img;
$("#imghead").attr("src",imgurl);
alert('上传成功!');
if (typeof (data.error) != 'undefined') {
if (data.error != '') {
alert(data.error);
} else {
alert(data.msg);
}
}
},
error: function (data, status, e)//服务器响应失败处理函数
{
alert(e);
}
}
)
return false;
}
</script> 最佳答案