首页 > 技术文章 > 工作框架各种使用整理 --图片上传和下载

dream-to-pku 2016-09-09 16:45 原文

 1  <container-dialog id="UploadContentDialog" button-text="Upload Content">
 2                 <form-single name="UploadExampleContent" transition="uploadExampleContent">
 3                     <field name="exampleId"><default-field><hidden/></default-field></field>
 4                     <field name="contentFile"><default-field><file/></default-field></field>
 5                     <!-- <field name="repositoryName"><default-field><text-line size="20" default-value="main"/></default-field></field> -->
 6                     <field name="purposeEnumId"><default-field title="Purpose">
 7                         <drop-down><entity-options><entity-find entity-name="moqui.basic.Enumeration">
 8                             <econdition field-name="enumTypeId" value="ExampleContentPurpose"/>
 9                             <order-by field-name="description"/>
10                         </entity-find></entity-options></drop-down>
11                     </default-field></field>
12                     <field name="locale"><default-field><text-line size="6"/></default-field></field>
13                     <field name="submitButton"><default-field title="Add"><submit confirmation="Really Add?"/></default-field></field>
14                 </form-single>
15             </container-dialog>
 1  <transition name="uploadExampleContent">
 2         <actions><script><![CDATA[
 3             import org.moqui.context.ResourceReference
 4             org.moqui.context.ExecutionContext ec = context.ec
 5 
 6             org.apache.commons.fileupload.FileItem contentFile = context.contentFile
 7             String fileName = contentFile.getName()
 8             ec.logger.info("Uploading file [${fileName}] for Example [${exampleId}] in repository [${repositoryName}] with purpose [${purposeEnumId}] and locale [${locale}]")
 9 
10             // String contentLocation = "content://${repositoryName}/moqui/example/${exampleId}/${fileName}"
11             String contentLocation = "dbresource://moqui/example/${exampleId}/${fileName}"
12             ResourceReference newRr = ec.resource.getLocationReference(contentLocation)
13             InputStream fileStream = contentFile.getInputStream()
14             newRr.putStream(fileStream)
15             fileStream.close()
16 
17             ec.service.sync().name("create", "ExampleContent").parameters([exampleId: exampleId,
18                     contentLocation: contentLocation, purposeEnumId: purposeEnumId, locale: locale]).call()
19             ]]></script></actions>
20         <default-response url="."/>
21     </transition>
 1 <form-list name="ListExampleContent" transition="updateExampleContent" list="exampleContentList">
 2             <field name="download"><default-field>
 3                 <link url="downloadContent" text="Download" parameter-map="[exampleId:exampleId, contentLocation:contentLocation]"/>
 4             </default-field></field>
 5             <field name="exampleId"><default-field><hidden/></default-field></field>
 6             <field name="contentLocation"><default-field title="Location"><display/></default-field></field>
 7             <field name="purposeEnumId"><default-field title="Purpose">
 8                 <drop-down><entity-options><entity-find entity-name="moqui.basic.Enumeration">
 9                     <econdition field-name="enumTypeId" value="ExampleContentPurpose"/>
10                     <order-by field-name="description"/>
11                 </entity-find></entity-options></drop-down>
12             </default-field></field>
13             <field name="locale"><default-field><text-line size="6"/></default-field></field>
14             <field name="submitButton"><default-field title="Update"><submit/></default-field></field>
15             <field name="deleteLink">
16                 <default-field title=" ">
17                     <!-- the parameters for this will be auto-mapped: exampleId, contentLocation -->
18                     <link url="deleteExampleContent" text="Delete" confirmation="Really Delete?"/>
19                 </default-field>
20             </field>
21         </form-list>
1  <transition name="downloadContent">
2         <actions>
3             <entity-find-one entity-name="ExampleContent" value-field="exampleContent"/>
4             <script>ec.web.sendResourceResponse(exampleContent.contentLocation)</script>
5         </actions>
6         <default-response type="none"/>
7     </transition>

 

推荐阅读