โดย ที่มาจาก :
http://profile.un-no.com/ozone_me/entry-13-Flash+Upload+Multi+File.html
เป็นภาษาไทย ค่อยข้างอ่านรู้เรื่อง จะมีประโยชน์มากถ้าใช้ PHP คือเสนอให้ศึกษาจาก web นี้ก่อนนะครับ ไม่อยากพิมพ์ซ้ำ
จัดการ download :
http://www.codeproject.com/KB/aspnet/FlashUpload.aspx << ยังหา web อื่นไม่เจอครับ แล้วเลือก ที่ Download source code - 475.86 KB
เลือกเอาแค่ file เดียวครับ FlashUpload/FlashFileUpload.swf ที่เหลือไม่ได้ใช้ (.swf เป็น flash file)
แล้วเราก็มาเริ่ม modify กันเลย เพื่อให้ใช้บน Turbogear Python เวอร์ชันที่ใช้ปัจจุบันเป็น version 2
ดังนั้น path ที่แนะนำ
project_folder > package_folder > public > FlashUpload > FlashFileUpload.swf
---------------------------------------------
เพิ่มเติมในส่วน template : uploadfile.html (เพิ่มส่วนนี้ใน body ครับ)
<script language="javascript" type="text/javascript">
function UploadComplete() {
window.location = '/uploadfiles/complete';
}
</script>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="370" id="fileUpload" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="/FlashUpload/FlashFileUpload.swf" />
<param name="quality" value="high" />
<param name="wmode" value="transparent"/>
<param name="flashvars" value="&completeFunction=UploadComplete()&fileTypes=*.gif%3b+*.png%3b+*.jpg%3b+*.jpeg&fileTypeDescription=Images&totalUploadSize=2097152&fileSizeLimit=524288&uploadPage=/uploadfiles"/>
<embed src="/FlashUpload/FlashFileUpload.swf" flashvars="&completeFunction=UploadComplete()&fileTypes=*.gif%3b+*.png%3b+*.jpg%3b+*.jpeg&fileTypeDescription=Images&totalUploadSize=2097152&fileSizeLimit=524288&uploadPage=/uploadfiles" quality="high" wmode="transparent" width="600" height="370" name="fileUpload" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"/>
</object>
---------------------------------------------
เพิ่มเติมในส่วน controllers : root.py
...
...
from package.controllers.uploadfile import uploadfilesController
class RootController(BaseController):
admin = Catwalk(model, DBSession)
error = ErrorController()
uploadfiles = uploadFilesController()
...
...
---------------------------------------------
เพิ่มเติมในส่วน controllers : uploadfile.py
from tg import expose
from testtg2web.lib.base import BaseController
class uploadfilesController(BaseController):
@expose('testtg2web.templates.uploadfiles')
def index(self):
return dict(page='uploadfiles')
@expose('testtg2web.templates.index')
def testupload(self, *arg, **kw):
f = kw['Filedata']
upload = f.file.read()
name = f.filename[f.filename.rfind('\\')+1:]
file = open(name,'w')
file.write(upload)
file.close()
print "testupload succedss..."
return dict(page='index')
@expose('testtg2web.templates.index')
def complete(self):
return dict(page='index')
---------------------------------------------
เผอิญไม่รู้ว่า upload เสร็จแล้วจะแสดงอะไร เลย return index เลย เหอ ๆ
จะแก้ไขเป็น return status ก็ทำ template เพิ่มนะครับ
ประมาณนี้ครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น