直接上代码
html
<form class="form-horizontal" id="upload-form">
<div class="col-md-6">
<div class="form-group">
<label class="col-sm-3 control-label">选择图片:</label> <div class="col-sm-9">
<input type="file" id = "picfile" name = "picfile">
</div>
</div>
<div class="btn-group btn-group-xl pull-right">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
jquery
$("#upload-form").submit( function() {
var checklist = $("input[name='checklist']");
var choice = new Array();
for (var i = 0; i < checklist.length; i++) {
if (checklist[i].checked) {
choice.push(checklist[i].value);
}
}
var imgs = $("#picfile")[0].files[0];
var data = new FormData();
data.append('taskids', choice)
data.append('imgs', imgs)
if (choice.length && imgs){
$.ajax({
type: 'POST',
url: '/rankkw/uploadPicture/',
data: data,
cache: false,
async: false,
processData: false,
contentType: false,
success: function (data, status) {
if (data.ret == 0) {
alert('上传图片成功!');
table.ajax.reload();
}
else {
alert("上传图片失败!失败原因:" + data.message);
}
},
error: function (data) {
alert( "错误原因"+data);
}
}) }else{ alert("未选中任务或未选择图片!") } })
后台
def uploadPicture(request):
try:
taskids = request.POST.get('taskids')
if not taskids:
ex = u"任务id获取失败"
raise Exception, ex
reqfile = request.FILES.get('imgs')
img = Image.open(reqfile)
img.thumbnail((500,500), Image.ANTIALIAS)
img.save('D:\\django\\amzkeyword\\statics\\uploadimgs\\1.png', "png")
return render_to_response("addtask.html", { "upload_msg": u"上传成功"})
except Exception, e:
err = u"上传失败,错误原因:" + str(e)
return render_to_response('addtask.html', { "upload_msg": err})