aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 25267|回复: 1

上传图片上传视频上传文件

[复制链接]

25

主题

89

回帖

732

积分

三级会员

积分
732
发表于 2018-5-17 15:36:52 | 显示全部楼层 |阅读模式
之前看了版主的web.rest帖子http://bbs.aardio.com/forum.php? ... ;highlight=web.rest

写了个关于web.rest上传文件的demo,分享给大家,代码不是很精炼。有兴趣的可以整理。

demo中用的上传接口是公家的,不能公开给大家玩,大家换成自己的上传接口即可,谅解!




  1. import win.ui;
  2. import gdip;
  3. import com.picture;
  4. import fsys.dlg;
  5. import web.rest.client;
  6. import web.rest.jsonLiteClient;
  7. import web.json;
  8. /*DSG{{*/
  9. var mainForm = win.form(text="aardio form";right=583;bottom=505)
  10. mainForm.add(
  11. picturebox={cls="picturebox";left=24;top=37;right=260;bottom=143;bgcolor=16711680;image=$"E:\软件开发\aardio\aardio\掌聚\发布评论\aardio工程\res\images\30.jpg";notify=1;z=1};
  12. picturebox2={cls="picturebox";left=24;top=324;right=260;bottom=430;bgcolor=65280;image=$"E:\软件开发\aardio\aardio\掌聚\发布评论\aardio工程\res\images\sp.jpg";notify=1;z=11};
  13. progress={cls="progress";left=109;top=234;right=513;bottom=264;edge=1;max=100;min=0;z=2};
  14. static={cls="static";text="上传进度条:";left=25;top=239;right=98;bottom=262;transparent=1;z=6};
  15. static2={cls="static";text="上传成功返回的图片URL";left=25;top=163;right=181;bottom=186;transparent=1;z=8};
  16. static3={cls="static";text="上传成功返回的视频URL";left=19;top=451;right=175;bottom=474;transparent=1;z=9};
  17. static4={cls="static";text="上传图片";left=27;top=13;right=119;bottom=28;transparent=1;z=12};
  18. static5={cls="static";text="上传视频";left=24;top=290;right=116;bottom=305;transparent=1;z=13};
  19. stc_upimgzh={cls="static";left=374;top=89;right=492;bottom=110;align="center";transparent=1;z=4};
  20. stc_upjd={cls="static";left=375;top=38;right=493;bottom=59;align="center";transparent=1;z=3};
  21. stc_upzh={cls="static";left=372;top=357;right=490;bottom=378;align="center";transparent=1;z=5};
  22. txt_imgPath={cls="edit";left=176;top=163;right=511;bottom=185;edge=1;z=7};
  23. txt_resPath={cls="edit";left=168;top=448;right=503;bottom=470;edge=1;z=10}
  24. )
  25. /*}}*/

  26. //mainForm.progress.hide = true;
  27. mainForm.progress.max  = 500;

  28. open_path = function(){
  29.        
  30.         var path=fsys.dlg.open("jpg|*.jpg|png|*.png|bmp|*.bmp|gif|*.gif");
  31.         return path;

  32. }

  33. open_video_path = function(){
  34.        
  35.         var video_path=fsys.dlg.open("mp4|*.mp4");
  36.         return video_path;

  37. }

  38. //上传文件
  39. upload_file = function(Path){
  40.        
  41.         mainForm.stc_upjd.text = 0; //算是个中介吧,记录每次上传了多少kb,累加用。

  42.         var restClient = web.rest.jsonLiteClient();
  43.        
  44.         var restApi = restClient.api("http://www.xxxx.com/xxxxxxx/xxxxxxx/{oname}.json"); //大家用自己的上传接口吧,公家接口不能给大家玩。
  45.        
  46.         var token = string.load("D:\token.txt");//加载本地文件中的Cookie 或者 token
  47.        
  48.         restClient.addHeaders ="Rtoken:"++token;//此处向headers添加Cookie 或者 Token,本人项目token
  49.          
  50.        
  51.         var str,sendSize,contentLenth = restClient.sendMultipartForm( {
  52.                        
  53.                         files = "@"+Path;
  54.                        
  55.                 },function(str,sendSize,contentLength){
  56.                        
  57.                 ..io.print("正在上传...",sendSize,contentLength);
  58.                 
  59.                 mainForm.progress.hide = false;
  60.                 
  61.                 var if_img_video = string.match(Path,"[\.]+[\a\d]+");//获取上传文件后缀,判断是图片,还是视频。
  62.                 
  63.                 //上传视频文件
  64.                 if(if_img_video = '.mp4' || if_img_video = '.MP4' || if_img_video = '.Mp4' || if_img_video = '.mP4'){
  65.                        
  66.                        
  67.                         if(sendSize == 0){
  68.                        
  69.                                 var prpos = mainForm.progress.pos;
  70.                                
  71.                                 if(prpos == 500){
  72.                                        
  73.                                         mainForm.stc_upzh.text = "视频上传成功";
  74.                                        
  75.                                 }

  76.                         }else {
  77.                                
  78.                                 var num = mainForm.stc_upjd.text;
  79.                                
  80.                                 mainForm.stc_upjd.text = sendSize + num;
  81.                                
  82.                                 var jindu = num/contentLength * 500;//进度条
  83.                                
  84.                                 mainForm.progress.pos = math.ceil(jindu);
  85.                                
  86.                                 mainForm.stc_upzh.text = "视频正在上传...";
  87.                                
  88.                         }
  89.                        
  90.                 //上传图片文件
  91.                 } elseif (if_img_video = '.jpg' || if_img_video = '.png' || if_img_video = '.gif' || if_img_video = '.bmp'){
  92.                 
  93.                        
  94.                         if(sendSize == 0){
  95.                                
  96.                                 var prpos = mainForm.progress.pos;
  97.                                
  98.                                 if(prpos == 500){
  99.                                        
  100.                                         mainForm.stc_upimgzh.text = "图片上传成功";
  101.                                        
  102.                                         }
  103.                 
  104.                         }else {
  105.                                
  106.                                 var num = mainForm.stc_upjd.text;
  107.                                
  108.                                 mainForm.stc_upjd.text = sendSize + num;
  109.                                
  110.                                 var jindu = num/contentLength * 500;//进度条   
  111.                                                 
  112.                                 mainForm.progress.pos = math.ceil(jindu);  
  113.                                
  114.                                 mainForm.stc_upimgzh.text = "图片正在上传...";
  115.                                                     
  116.                         }
  117.                 
  118.                 }
  119.                 win.delay(10)
  120.                 
  121.             }
  122.             
  123.         );

  124.         restApi.upload();
  125.         return restClient.lastResponse();
  126.        
  127. }


  128. mainForm.picturebox.oncommand = function(id,event){
  129.    
  130.     var imgPath = open_path();
  131.    
  132.         if(imgPath != "" && imgPath != null){
  133.                
  134.                 mainForm.txt_imgPath.text = imgPath;
  135.                
  136.                 var img = gdip.image (imgPath);
  137.                
  138.                 mainForm.picturebox.image=imgPath;
  139.                
  140.                 var wx = 236/img.width;
  141.                 var hx = 106/img.height;
  142.                
  143.                 //凡是高度大于106的图片,按比例缩小显示,小于或者等于控件设定高度106的,直接显示原图
  144.                 if(img.height > 106){  
  145.        
  146.                         mainForm.picturebox.setPos( , ,img.width*wx,img.height*hx);
  147.                        
  148.                 }else {
  149.                
  150.                         mainForm.picturebox.setPos( , ,width,height);
  151.                
  152.                 }
  153.                
  154.                 var imgUrl = upload_file(imgPath);

  155.                 var t = web.json.parse(imgUrl);
  156.        
  157.                 mainForm.txt_imgPath.text = t.aaData[1].fileName;
  158.                
  159.         }
  160.                        
  161. }

  162. //上传视频
  163. mainForm.picturebox2.oncommand = function(id,event){
  164.        
  165.         var videopath = open_video_path();
  166.        
  167.         if(videopath != "" && videopath != null){
  168.                
  169.                 mainForm.txt_resPath.text = videopath;
  170.                
  171.                 var videw = upload_file(videopath);
  172.                
  173.                 var ver = web.json.parse(videw);
  174.                
  175.                 mainForm.txt_resPath.text = ver.aaData[1].fileName;
  176.                        
  177.         }
  178.                
  179. }


  180. mainForm.show()
  181. win.loopMessage();
复制代码


25

主题

89

回帖

732

积分

三级会员

积分
732
 楼主| 发表于 2018-5-17 17:50:27 | 显示全部楼层
[img=600,548] [/img]
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2024-10-4 20:44 , Processed in 0.093069 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表