Wenbing Li

It's all about the fundamentals.

在sMash环境中,使用dojo来Ajax上传文件

| Comments

在dojo的test page中给出了如何上传文件,http://archive.dojotoolkit.org/nightly/dojotoolkit/dojo/tests/io/iframeUploadTest.html.可惜server端的code是python写的,现在把dojo的upload文件在WebSphere sMash的环境下实现,并且强调几个关键的trick,在code中进行说明。故事很简单:上传一个文件,完毕后返回文件的大小,最后浏览器弹出该信息。

  1. HTML code

    method=“POST” enctype=“multipart/form-data”>

  2. Javascript code

  3. zero code

    def onCreate() { //zero中的上传文件放在request的files中 def attachment = request.files[“attachment”]

    //每个上传文件有上传文件的临时路径以及文件
    def filepathUpload = attachment.path[0]
    def fileName = attachment.filename[0]
    
    int fileSize = new FileInputStream(new File(filepathUpload)).available()
    def msg = "The size of your file '" + fileName + "' is " + fileSize + " bytes."
    
    //这个是dojo iframe做定义的,必须要使用一个<textarea>进行包裹结果.
    def iframeData = "<textarea>" + msg + "</textarea>"
    println iframeData
    

    }

这个是sMash的project,可以Download(Ajax upload file using dojo in sMash)下来试试。

Useful links:

http://www.cs.tut.fi/~jkorpela/forms/file.html https://www.projectzero.org/javadoc/latest/CORE/API/zero/core/context/GlobalContextURIs.Request.html#files

Comments