cordova結合wavemaker手機圖片上傳實現
1.增加cordova插件
* cordova plugin add org.apache.cordova.camera
* cordova plugin add org.apache.cordova.file
* cordova plugin add org.apache.cordova.file-transfer
2.在cordova的config.xml配置文件中增加如下屬性
<access origin="*" />
<gap:plugin name="org.apache.cordova.file" />
<gap:plugin name="org.apache.cordova.file-transfer" />
<gap:plugin name="org.apache.cordova.camera" />
3.修改wavemaker構建出的phonegap項目中的index.html文件
<script type="text/javascript" src="phonegap.js"></script>改成如下
<script type="text/javascript" src="cordova.js"></script>
4.修改wavemakerr構建出的phonegap項目中的lib\build\Gzipped下wm_phonegap_misc.js文件
1)if(window["PhoneGap"])改成
if(window["PhoneGap"] || window["cordova"])
2)destinationType:Camera.DestinationType.DATA_URL改成
destinationType:Camera.DestinationType.FILE_URI
3)d.callback({dataValue:“data:image/jpeg;base64,”+_43}改成
d.callback({dataValue:_43}修改成FILE_URI是因為插件file-transfer上傳時需要FILE_URI
5,直接利用wavemaker創建一個PhoneGapCall service,operation選擇capture_picture;創建一個Button,點擊時調用這個service,將得到的圖片顯示出來;再創建一個button,點擊上傳,wavemaker的腳本如下:
phoneGapBrowsePictureSuccess: function(inSender, inDeprecated) {
this.tempPicture.setSource(inSender.getValue("dataValue"));
this.uploadFileURL.setValue("dataValue",inSender.getValue("dataValue"));
},
phoneGapBrowsePictureError: function(inSender, inError) {
app.alert(inError);
},
uploadBtnClick: function(inSender) {
var fileURL=this.uploadFileURL.getValue("dataValue");
app.alert(fileURL);
var uri = encodeURI("http://192.168.88.126:8400/FileServer/servlet/PhoneGapFileServlet");
var options = new FileUploadOptions();
options.fileKey="file";
options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
var params = {};
//params.file = fileURL;
options.params = params;
var headers={'headerParam':'headerValue'};
options.headers = headers;
var ft = new FileTransfer();
ft.upload(fileURL, uri, this.win, this.fail, options);
},
win: function(r) {
app.alert("Code = " + r.responseCode);
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
},
fail: function(error) {
console.log(error);
app.alert("An error has occurred: Code = " + error.code);
console.log("upload error source " + error.source);
console.log("upload error target " + error.target);
},
6,Servlet寫法如下
package com.yonghong;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.DiskFileUpload;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class PhoneGapFileServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html,charset=utf-8");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try{
File file1=null;
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
List<FileItem> list = upload.parseRequest(request);
for(FileItem fileItem:list){
if(fileItem.isFormField()){
System.out.println("is form field");
}else{
System.out.println("start upload:"+fileItem.getFieldName());
if("file".equals(fileItem.getFieldName())){
File remoteFile = new File(new String(fileItem.getName().getBytes(),"UTF-8"));
file1 = new File(this.getServletContext().getRealPath("/WEB-INF"),remoteFile.getName());
file1.getParentFile().mkdirs();
file1.createNewFile();
InputStream ins = fileItem.getInputStream();
OutputStream ous = new FileOutputStream(file1);
try{
byte[] buffer = new byte[1024];
int len=0;
while((len=ins.read(buffer))>-1){
ous.write(buffer, 0, len);
}
}finally{
ous.close();
ins.close();
}
}
}
}
}catch(FileUploadException e){
e.printStackTrace();
}
}
}
附上www的源碼
相关推荐
WaveMaker也集成了Apache Commons BeanUtils和Collections库,这些是由Apache Software Foundation开发的。 #### Apache Jakarta Commons IO 2001年至2007年间,Apache Software Foundation版权所有。该产品包含了...
[Packt Publishing] 傻瓜网络开发教程 WaveMaker 实现 英文版 [Packt Publishing] Easy Web Development with WaveMaker E Book ☆ 图书概要:☆ A practical hands on guide for amateur developers to design...
WAVEMAKER通过构建老年人群体需求图谱和消费者细分模型,帮助企业和品牌更精准地定位和服务这一人群,开发更符合老年人群需求的产品和服务。 在数据支持方面,WAVEMAKER使用自己的老年人群追踪数据库以及定制化的...
2019数字时代的中国孩童白皮书-Wavemaker-201902.pdf
)将章节分为多个场景(包括场景)(包括研究场景),保存注释,上传图像和带有标签的链接条目!导出为HTML,Markdown(以及RTF和eBook格式);添加了Planning Grid Tool (基于JKRowling示例)最后是Scrivener的跨...
您可以通过键入以下命令检查是否安装了Node和npm: $ node --version && npm --version 如果需要升级或安装Node,最简单的方法是为平台使用安装程序。 从下载Windows的.msi或Mac的.pkg。 Git您可以通过键入以下...
- **具体应用**:例如在**食品饮料行业**中,可以开发适合老年人口味和健康需求的产品;在**时尚鞋服行业**中,设计更加舒适、便于穿着的服装;在**日化家清行业**中,推出易于使用的清洁用品等。 ### 4. 解决当前...
《中国老龄化社会的潜藏价值》是由Wavemaker在2019年10月发布的一份行业报告,这份报告深入探讨了中国社会快速老龄化背景下所蕴含的经济和社会机遇。老龄化是一个全球性的趋势,但在中国,由于人口基数庞大,老龄化...
这就意味着,即使用户熟悉WaveMaker的界面和功能,仍然需要了解WGL的具体语法和结构才能有效地利用WGL进行更高级别的定制和操作。 #### 四、WGL与其他工具的集成 WGL被设计用于与Summit Design的TDS WGL ...
标题中的“中国老龄化社会的潜藏价值系列报告—第二篇章-WAVEMAKER.rar”表明这是一份关于中国老龄化社会的专题研究报告,由WAVEMAKER机构发布,属于该系列报告的第二部分。从标签“行业报告”我们可以推断,这份...
《中国老龄化社会的潜藏价值——产业价值篇》由Wavemaker发布,是一份系列报告的第四篇章,该系列报告旨在全面展现中国城市老龄化群体的真实情况,分析其重要性和价值所在,并探讨品牌如何挖掘潜在市场并协同创造...
最后,报告还可能介绍了Wavemaker的团队成员以及联系方式和调查方法论,为读者提供了与报告制作团队的联系途径和报告制作过程中采用的研究方法。 综上所述,这份报告不仅提供了关于新常态下市场和品牌应对策略的...
《中国老龄化社会的潜藏价值》系列报告是针对我国日益加剧的老龄化问题进行深入研究的成果,由WAVEMAKER在2020年1月发布。该报告旨在揭示老龄化社会背后所蕴含的经济、社会及科技潜力,为政策制定者、企业和投资者...
易于使用的开源Web开发平台。 可视化,拖放工具使任何人都能以最小的学习曲线来创建Web应用程序。 Java体系结构:Spring,Hibernate,Ajax Dojo工具包,MySQL,PostgreSQL,HSQLDB(捆绑HSQLDB)
企业可以通过精准定位老年消费者需求,开发符合他们特性的产品和服务,以抢占市场先机。 5. **政策环境**: 政府对老龄化问题的关注和应对策略是银发经济发展的重要推动力。报告可能会提及政府在社会保障、医疗...
报告标题:“中国老龄化社会的潜藏价值系列报告:第三篇章-银发经济的基本盘和新常态-WAVEMAKER-202003精品报告2020” 该报告聚焦于中国日益严重的老龄化问题,并深入探讨了老龄化社会对中国经济,特别是银发经济的...