첨부 파일 업로드 방안
5410 단어 JavaScriptAjaxpythonextFP
{
id :'uploads',
xtype :'uploadDisplayField',
isFormField: true,
fieldLabel : ' '
}
:
var win = new Ext.Window( {
title:' ',
height: 300,
width : 420,
plain : true,
modal : true,
shadow : true,
border : false,
layout:'fit',
items : [new Ext.ux.SwfUploadPanel({
frame: true,
//border: false,
flash_url:Ext.STATIC_URL+'extjs/ux/swfupload.swf',
post_params : {
'infoId': this.fp.form.findField('ID').getValue()
},
upload_url : Ext.WEB_URL+'admin/info/uploadAttachment.do',
listeners: {
fileUploadSuccess:function(panel,file,data){
Ext.getCmp('uploads').addFile(data.id,data.name);
},
scope:this
}
})]
});
win.show();
swfupload 는 첨부 파일 의 업로드 기능 만 완성 합 니 다.보통 폼 에 첨부 파일 의 목록 을 추가 하고 첨부 파일 삭제 기능 을 추가 합 니 다.
Ext.ux.UploadDisplayField = Ext.extend(Ext.Component, {
autoEl: {
tag: 'div'
},
onRender: function() {
this.autoEl = Ext.apply({}, this.initialConfig, this.autoEl);
Ext.ux.UploadDisplayField.superclass.onRender.apply(this, arguments);
this.el.on('load', this.onLoad, this);
},
onLoad: function() {
this.fireEvent('load', this);
},
addFile: function(id,name) {
var html = '<tpl for="."><span id="{ID}"><a href="#">{NAME}</a> <a href="#" class="file-delete" id="file-{ID}"> </a> </tpl>';
var tpl = new Ext.XTemplate(html);
tpl.overwrite(this.el,[{ID:id,NAME:name}]);
this.getEl().on('click', function(e, t) {
e.stopEvent();
var id=t.id.substr(5);
Ext.Ajax.request( {
url : Ext.WEB_URL+'admin/info/attachmentDelete.do',
params : {
'id' : id
},
method : 'POST',
success : function(response) {
var r = Ext.decode(response.responseText);
if (!r.success)
Ext.Msg.alert(' ',
' , :<br/>' + (r.msg ? r.msg
: ' '));
else {
var span = Ext.getDom(id);
span.parentNode.removeChild(span);
}
},
scope : this
});
}, null, {delegate: 'a.file-delete'});
},
loadFiles:function(data){
var html = '<tpl for="."><span id="{ID}"><a href="#">{NAME}</a> <a href="#" class="file-delete" id="file-{ID}"> </a> </tpl>';
var tpl = new Ext.XTemplate(html);
tpl.overwrite(this.el,data);
this.getEl().on('click', function(e, t) {
e.stopEvent();
var id=t.id.substr(5);
Ext.Ajax.request( {
url : Ext.WEB_URL+'admin/info/attachmentDelete.do',
params : {
'id' : id
},
method : 'POST',
success : function(response) {
var r = Ext.decode(response.responseText);
if (!r.success)
Ext.Msg.alert(' ',
' , :<br/>' + (r.msg ? r.msg
: ' '));
else {
var span = Ext.getDom(id);
span.parentNode.removeChild(span);
}
},
scope : this
});
}, null, {delegate: 'a.file-delete'});
}
});
Ext.reg('uploadDisplayField', Ext.ux.UploadDisplayField);
서버 쪽 코드:
class UploadAttachment(webapp.RequestHandler):
def get(self):
self.post()
def post(self):
self.response.headers['Content-Type'] = 'text/x-json;charset=UTF-8'
infoId = self.request.get('infoId')
fileName = self.request.get('Filename')
data=self.request.get('Filedata')
attachment = models.Attachment()
attachment.ext=fileName[ - 3:]
attachment.name=fileName[: - 4][:10]
attachment.content=data
attachment.info=infoId
attachment.put()
self.response.out.write(simplejson.dumps({'success':True,'id':str(attachment.key()),'name':attachment.name}))
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.