当前位置:   article > 正文

Cordova - fileTransfer插件的使用详解(实现文件上传、下载)_filetransfer魅族插件安装

filetransfer魅族插件安装

Cordova 提供了一个 fileTransfer 插件,通过这个插件我们很方便地实现文件的传输操作(上传、下载)。 

1,添加FileTransfer插件

 

首先我们要在“终端”中进入工程所在的目录,然后运行如下命令添加插件:

 

 

cordova plugin add cordova-plugin-file-transfer


2,文件下载

 

下面代码通过url地址下载网络上的图片到本地( iOS系统保存在  Documents 目录下)
原文:Cordova - fileTransfer插件的使用详解(实现文件上传、下载)

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Capture Photo</title>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  6. <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
  7. <script type="text/javascript" charset="utf-8">
  8. //下载图片
  9. function downloadImage(){
  10. window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function (fs) {
  11. console.log('打开的文件系统: '+fs.name);
  12. var url = 'http://www.hangge.com/blog/images/logo.png';
  13. fs.root.getFile('hangge.png', {create:true,exclusive:false},
  14. function (fileEntry){
  15. download(fileEntry,url);
  16. }, onErrorCreateFile);
  17. }, onErrorLoadFs);
  18. }
  19. //下载文件
  20. function download(fileEntry,uri) {
  21. var fileTransfer = new FileTransfer();
  22. var fileURL=fileEntry.toURL();
  23. fileTransfer.download(uri,fileURL,function (entry) {
  24. console.log("下载成功!");
  25. console.log("文件保存位置: "+entry.toURL());
  26. },
  27. function (error) {
  28. console.log("下载失败!");
  29. console.log("error source "+error.source);
  30. console.log("error target "+error.target);
  31. console.log("error code"+error.code);
  32. },
  33. null, // or, pass false
  34. {
  35. //headers: {
  36. // "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
  37. //}
  38. }
  39. );
  40. }
  41. //文件创建失败回调
  42. function onErrorCreateFile(error){
  43. console.log("文件创建失败!")
  44. }
  45. //FileSystem加载失败回调
  46. function onErrorLoadFs(error){
  47. console.log("文件系统加载失败!")
  48. }
  49. </script>
  50. </head>
  51. <body style="padding-top:50px">
  52. <button style="font-size:23px;" onclick="downloadImage();">下载图片</button>
  53. </body>
  54. </html>

 

 

 

 

 

3,上传文件

下面代码点击按钮后,将 Documents 目录下的 hangge.png 图片上传到网络服务器上。

原文:Cordova - fileTransfer插件的使用详解(实现文件上传、下载)
 
 
 
 

 

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Capture Photo</title>
  5. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  6. <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
  7. <script type="text/javascript" charset="utf-8">
  8. //上传图片
  9. function uploadImage(){
  10. window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
  11. console.log('打开的文件系统: ' + fs.name);
  12. fs.root.getFile('hangge.png', { create: true, exclusive: false },
  13. function (fileEntry) {
  14. upload(fileEntry);
  15. }, onErrorCreateFile);
  16. }, onErrorLoadFs);
  17. }
  18. //上传文件
  19. function upload(fileEntry) {
  20. //获取文件的url路径地址
  21. var fileURL = fileEntry.toURL();
  22. //上传成功
  23. var success = function (r) {
  24. console.log("上传成功! Code = " + r.responseCode);
  25. }
  26. //上传失败
  27. var fail = function (error) {
  28. alert("上传失败! Code = " + error.code);
  29. }
  30. var options = new FileUploadOptions();
  31. options.fileKey = "file1";
  32. options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
  33. options.mimeType = "text/plain";
  34. //上传参数
  35. var params = {};
  36. params.value1 = "test";
  37. params.value2 = "param";
  38. options.params = params;
  39. var ft = new FileTransfer();
  40. //上传地址
  41. var SERVER = "http://www.hangge.com/upload.php"
  42. ft.upload(fileURL, encodeURI(SERVER), success, fail, options);
  43. };
  44. //文件创建失败回调
  45. function onErrorCreateFile(error){
  46. console.log("文件创建失败!")
  47. }
  48. //FileSystem加载失败回调
  49. function onErrorLoadFs(error){
  50. console.log("文件系统加载失败!")
  51. }
  52. </script>
  53. </head>
  54. <body style="padding-top:50px">
  55. <button style="font-size:23px;" onclick="uploadImage();">上传图片</button>
  56. </body>
  57. </html>

 

 

 

 

 

附:服务端代码(upload.php

 

  1. <?
  2. move_uploaded_file($_FILES["file1"]["tmp_name"],
  3. $_SERVER["DOCUMENT_ROOT"]."/uploadFiles/" . $_FILES["file1"]["name"]);
  4. ?>

 

 

 

4,获取传输实时进度
通过 FileTransfer 对象的 onprogress 回调方法,我们可以监听到上传、下载的实时进度。

 

 

原文:Cordova - fileTransfer插件的使用详解(实现文件上传、下载)
 

 

  1. var ft = new FileTransfer();
  2. //传输进度
  3. ft.onprogress = function(progressEvent) {
  4. if (progressEvent.lengthComputable) {
  5. console.log("当前进度:"+progressEvent.loaded / progressEvent.total);
  6. }
  7. };
  8. //上传地址
  9. var SERVER = "http://www.hangge.com/upload.php"
  10. ft.upload(fileURL, encodeURI(SERVER), success, fail, options);

 

 

 

 

 

5,停止文件传输

通过 FileTransfer 对象的 abort() 方法可以中断当前进行的上传、下载操作。

 

ft.abort();

 

 

 

原文出自:www.hangge.com  原文链接:http://www.hangge.com/blog/cache/detail_1180.html

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/311960
推荐阅读
相关标签
  

闽ICP备14008679号