【翻译】【Ionic】上传,FileTransfer学习
2017-07-19 19:08
197 查看
英文原文及GitHub下载地址点我;
Properties
onprogress:无论是否一个新的大量数据被传输了,其总会伴随ProgressEvent事件;
Method
upload:向服务器上传一个文件;
download:从服务器下载一个文件;
abort:终止一个运行的传输程序;
upload
参数:
fileURL:文件系统的URL代表设备上一个文件或数据URI。为了能够兼容性反馈,也可以是文件在设备上的全路径;
server:服务器接收文件的URL,可被encodeURI编码;
successCallBack:返回一个FIleUploadResult对象,文件上传结果对象,用来反馈是否通过;
errorCallBack:错误反馈,如果一个错误在检索过程中发生,其会引用一个FileTransferError文件传输错误对象;
options:操作性参数,可得到的keys:
fileKey:文件名,默认为file;
fileName:存储文件到服务器的名字,默认为image.jpg;
httpMethod:http请求方法,有POST或PUT,默认为POST;
mimeType:上传的数据的类型,默认是image/jpeg;
mime:用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
params:http请求中,一个操作性键值对的集合,(Object,key/value)
chunkedMode:是否上传数据使用大量数据模式;默认true;(boolean)
headers:一个headerMap类型 name/header value键值对;使用hash来唯一确定某个值;在IOS,FireOS和安卓Android中,如果一个header中的Content-Type的Map存在,多部分形式数据将不会被使用;
trustAllHosts:操作性参数,默认是false;如果设置为true的时候,其将接受安全验证,自从安卓拒绝self-signed安全验证之后,这是很有用;不推荐产品使用。支持安卓和IOS;(boolean类型)
例子:
上传头部和项目时间的例子(只支持Android和IOS)
FileUploadResult
一个FileUploadResult 对象是文件传输(FileTransfer)和上传(upload)通过成功的反馈;
Properties
bytesSent:发送到服务器的字节数,一同上传;(long)
responseCode:服务器返回的HTTP反馈代码;(long)
response:服务器返回的HTTP响应;(DOMString)
headers:服务器的HTTP响应头部;(Object)目前只支持IOS;
**IOS Quirks**IOS兼容
不支持responseCode或bytesSent;
不支持上传带有chunkedMode=true和multipartMode=false的空文件;
Browser Quirks浏览器兼容
withCredentials:boolean告诉浏览器在XMLHttpRequest上设置withCredentials标记;
**Windows Quirks**windows兼容
一个对参数的操作,因为windows API的设计,把空/null value排除在上传操作之外;
chunkedMode 是一个不支持并且设置非chunked模式;
FileTransfer
对象提供一种使用HTTP多部分 POST或者PUT请求上传文件的方式,并且,可以下载文件;Properties
onprogress:无论是否一个新的大量数据被传输了,其总会伴随ProgressEvent事件;
Method
upload:向服务器上传一个文件;
download:从服务器下载一个文件;
abort:终止一个运行的传输程序;
upload
参数:
fileURL:文件系统的URL代表设备上一个文件或数据URI。为了能够兼容性反馈,也可以是文件在设备上的全路径;
server:服务器接收文件的URL,可被encodeURI编码;
successCallBack:返回一个FIleUploadResult对象,文件上传结果对象,用来反馈是否通过;
errorCallBack:错误反馈,如果一个错误在检索过程中发生,其会引用一个FileTransferError文件传输错误对象;
options:操作性参数,可得到的keys:
fileKey:文件名,默认为file;
fileName:存储文件到服务器的名字,默认为image.jpg;
httpMethod:http请求方法,有POST或PUT,默认为POST;
mimeType:上传的数据的类型,默认是image/jpeg;
mime:用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。
params:http请求中,一个操作性键值对的集合,(Object,key/value)
chunkedMode:是否上传数据使用大量数据模式;默认true;(boolean)
headers:一个headerMap类型 name/header value键值对;使用hash来唯一确定某个值;在IOS,FireOS和安卓Android中,如果一个header中的Content-Type的Map存在,多部分形式数据将不会被使用;
trustAllHosts:操作性参数,默认是false;如果设置为true的时候,其将接受安全验证,自从安卓拒绝self-signed安全验证之后,这是很有用;不推荐产品使用。支持安卓和IOS;(boolean类型)
例子:
// !! Assumes variable fileURL contains a valid URL to a text file on the device, // for example, cdvfile://localhost/persistent/path/to/file.txt var win = function (r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); } var fail = function (error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var options = new FileUploadOptions(); options.fileKey = "file"; options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1); options.mimeType = "text/plain"; var params = {}; params.value1 = "test"; params.value2 = "param"; options.params = params; var ft = new FileTransfer(); ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);
上传头部和项目时间的例子(只支持Android和IOS)
function win(r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); } function fail(error) { alert("An error has occurred: Code = " + error.code); console.log("upload error source " + error.source); console.log("upload error target " + error.target); } var uri = encodeURI("http://some.server.com/upload.php"); var options = new FileUploadOptions(); options.fileKey="file"; options.fileName=fileURL.substr(fileURL.lastIndexOf('/')+1); options.mimeType="text/plain"; var headers={'headerParam':'headerValue', 'headerParam2':'headerValue2'}; options.headers = headers; var ft = new FileTransfer(); ft.onprogress = function(progressEvent) { if (progressEvent.lengthComputable) { loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total); } else { loadingStatus.increment(); } }; ft.upload(fileURL, uri, win, fail, options);
FileUploadResult
一个FileUploadResult 对象是文件传输(FileTransfer)和上传(upload)通过成功的反馈;
Properties
bytesSent:发送到服务器的字节数,一同上传;(long)
responseCode:服务器返回的HTTP反馈代码;(long)
response:服务器返回的HTTP响应;(DOMString)
headers:服务器的HTTP响应头部;(Object)目前只支持IOS;
**IOS Quirks**IOS兼容
不支持responseCode或bytesSent;
不支持上传带有chunkedMode=true和multipartMode=false的空文件;
Browser Quirks浏览器兼容
withCredentials:boolean告诉浏览器在XMLHttpRequest上设置withCredentials标记;
**Windows Quirks**windows兼容
一个对参数的操作,因为windows API的设计,把空/null value排除在上传操作之外;
chunkedMode 是一个不支持并且设置非chunked模式;
相关文章推荐
- 【翻译作品】JavaScript CSS修改学习第五章:给“上传”添加样式
- iOS学习:调用相机,选择图片上传,带预览功能
- 个人学习代码保存:例6.多文件上传
- angular2+和ionic2+学习博客和问题记录
- SASS(SCSS)学习及其在ionic中的应用
- 【学习】NeatUpload——支持大文件上传的控件
- 从零开始学习Node.js系列教程三:图片上传和显示方法示例
- 《Windows Via C/C++》边学习,边翻译(二)操作字符和字符串-1
- php学习记录 iframe 文件上传
- MVC&WebForm对照学习:文件上传(以图片为例)
- 前端学习总结(十二)ionic——媲美原生的h5跨平台移动应用开发框架
- 如何用六行代码+SQL Server为任何APP添加深度学习【翻译VS新闻】
- K-均值散列:学习二进制压缩码的近邻保留量化方法(董帆翻译)
- Object-Oriented Analysis and Design Using UML 翻译与学习 (十三)
- Jsp学习6-文件上传
- Django2.0文档学习与翻译
- 强化学习第二版(翻译)第一章 导论 第五节 拓展例子:井字棋 1.5 An Extended Example: Tic-Tac-Toe
- 学习Windows 编程,从MSDN翻译开始--1
- ios网络学习------10 原生API文件上传
- Flask学习笔记:文件上传原生实现