关于nutz跨服务器上传文件

 发布于 578天前  作者 yong9664  770 次浏览  复制  上一个帖子  下一个帖子
 标签: 无

是这样的,项目在一台服务器,文件要存储到另外一台服务器。
项目中功能使用form表单上传

  1. @At
  2. @AdaptBy(type = UploadAdaptor.class, args = { "${app.root}/WEB-INF/tmp" })
  3. public String add(@Param("upload_file")TempFile f, HttpServletRequest request)

module里已经接收到f,怎么将f传到另外一台服务器,nutz有这样的上传封装吗?求指点

21 回复

前提是你存放文件的那个服务器要能接收 HTTP 形式的文件上传

@wendal @kerbores

  1. public static String fileUploadReturnPath(TempFile file, String model)
  2. {
  3. try
  4. {
  5. Request req = Request.create("http://localhost:8083/uploadFile/image", METHOD.POST);
  6. req.getParams().put("file", file.getFile());
  7. Response resp = new FilePostSender(req).send();
  8. if (!resp.isOK()) {
  9. System.out.println("11");
  10. } else {
  11. System.out.println("22");
  12. }
  13. System.out.println(resp.getContent());
  14. return null;
  15. }
  16. catch (Exception e)
  17. {
  18. logger.info("【文件上传失败】", e);
  19. }
  20. return null;
  21. }

大神,帮忙看看,system的是11....

@yong9664 那你不是应该去看880

@wendal 8083那机器的日志吗

@kerbores
能接收Http形式的文件上传,怎么设置啊?这个还真没注意...

@wendal 没有日志...

那8083是个啥程序

表单上传文件,不懂??

@wendal 完整上传代码,麻烦帮看下,项目服务器和文件报错服务器不在一起....

jsp:

  1. <form action="<%=path%>/manager/add" name="myForm" id="myForm" method="post" enctype="multipart/form-data">
  2. <input type="file" name="upload_file" id="upload_file" />
  3. </form>

module:

  1. @At
  2. @AdaptBy(type = UploadAdaptor.class, args = { "${app.root}/WEB-INF/tmp" })
  3. public String add(@Param("upload_file")TempFile f, HttpServletRequest request)
  4. {
  5. fileUploadReturnPath(f, "image");
  6. }

上传到另外一台服务器:

  1. public static String fileUploadReturnPath(TempFile file, String model)
  2. {
  3. try
  4. {
  5. Request req = Request.create("http://192.168.1.103:8083/uploadFile/"+ model, METHOD.POST);//文件存储服务器ip和tomcat端口
  6. req.getParams().put("file", file.getFile());
  7. Response resp = new FilePostSender(req).send();
  8. if (!resp.isOK()) {
  9. System.out.println("11");
  10. } else {
  11. System.out.println("22");
  12. }
  13. System.out.println(resp.getContent());
  14. return null;
  15. }
  16. catch (Exception e)
  17. {
  18. logger.info("【文件上传失败】", e);
  19. }
  20. return null;
  21. }

system打印11,代表失败了吧?

接收的那端总会有点日志的,log4j的话全配置为debug

@wendal 哦哦,我试试改为debug看看日志

@wendal 日志么看出什么东西....

  1. [2016-04-08 13:55:26,266] org.nutz.mvc.impl.UrlMappingImpl:92 DEBUG - Found mapping for [POST] path=/manager/add : MultimediaModule.add(MultimediaModule.java:126)
  2. [2016-04-08 13:55:26,266] org.nutz.ioc.impl.NutIoc:153 DEBUG - Get 'multimediaModule'<class com.xll.module.manager.MultimediaModule>
  3. [2016-04-08 13:55:26,267] org.nutz.mvc.upload.UploadAdaptor:187 DEBUG - Select Html4 Form upload parser --> /nysq/manager/add
  4. [2016-04-08 13:55:26,269] org.nutz.mvc.upload.FastUploading:39 DEBUG - FastUpload : /manager/add
  5. [2016-04-08 13:55:26,271] org.nutz.mvc.upload.FastUploading:54 DEBUG - info created
  6. [2016-04-08 13:55:26,272] org.nutz.mvc.upload.FastUploading:60 DEBUG - Params map created - 0 params
  7. [2016-04-08 13:55:26,274] org.nutz.mvc.upload.FastUploading:77 DEBUG - boundary:
  8. ------WebKitFormBoundary0DAjRIVAe1vCfi82
  9. [2016-04-08 13:55:26,278] org.nutz.mvc.upload.FastUploading:100 DEBUG - skip first boundary
  10. [2016-04-08 13:55:26,278] org.nutz.mvc.upload.FastUploading:111 DEBUG - Reading...
  11. [2016-04-08 13:55:26,281] org.nutz.mvc.upload.FastUploading:133 DEBUG - Upload File info: FilePath=[null],fieldName=[title]
  12. [2016-04-08 13:55:26,281] org.nutz.mvc.upload.FastUploading:214 DEBUG - Found a param, name=[title] value=[aaa]
  13. [2016-04-08 13:55:26,281] org.nutz.mvc.upload.FastUploading:133 DEBUG - Upload File info: FilePath=[null],fieldName=[description]
  14. [2016-04-08 13:55:26,282] org.nutz.mvc.upload.FastUploading:214 DEBUG - Found a param, name=[description] value=[]
  15. [2016-04-08 13:55:26,282] org.nutz.mvc.upload.FastUploading:133 DEBUG - Upload File info: FilePath=[苹果.jpg],fieldName=[multimedia_file]
  16. [2016-04-08 13:55:26,282] org.nutz.mvc.upload.FastUploading:137 DEBUG - Upload Info: name=苹果.jpg,content_type=image/jpeg
  17. [2016-04-08 13:55:26,291] org.nutz.mvc.upload.FastUploading:230 DEBUG - ...Done 3584 bytes readed

这是点击提交请求后的所有日志。

接收的名字应该是 @Param("multimedia_file") TempFile f

上面的日志是代表已经读取到文件了, 就看入口方法怎么接收了

但好奇怪为啥是 "multimedia_file" , 你代码里面写的是这个名字??? FilePostSender应该不会生成这个名字

@wendal 名字“multimedia_file”没错的,我给module更改了下,方便你看的o(∩_∩)o

@yong9664 这属于自以为聪明,找打

最终结果就目标服务根本没有对应的入口方法。

关于nutz跨服务器上传文件的更多相关文章

  1. idea 内置tomcat jersey 跨服务器 上传文件报400错误

    报错内容 com.sun.jersey.api.client.UniformInterfaceException: PUT http://.jpg returned a response status ...

  2. ASP.NET跨服务器上传文件的相关解决方案

    第一种:通过FTP来上传文件 首先,在另外一台服务器上设置好FTP服务,并创建好允许上传的用户和密码,然后,在ASP.NET里就可以直接将文件上传到这台 FTP 服务器上了.代码如下: <%@ ...

  3. jersey实现跨服务器上传

    1.导入跨服务器上传文件jar文件 <dependency> <groupId>commons-io</groupId> <artifactId>com ...

  4. 阶段3 3.SpringMVC·_05.文件上传_5 文件上传之跨服务器上传分析和搭建环境

    使用这个jar包来跨服务器上传 搞两个tomcat.一个springmvc一个fileupload 选中tomcat server点击左边的加号 需要改端口和JMX pport这个端口 部署文件上传的 ...

  5. xshell终端向远程服务器上传文件方法

    centos-7下在本地终端里向远程服务器上传文件,在命令行中执行的软件. 安装命令如下: 在终端里输入如下命令: 会弹出如下窗口 选择你要上传的文件即可上传成功.

  6. Java模拟客户端向服务器上传文件

    先来了解一下客户端与服务器Tcp通信的基本步骤: 服务器端先启动,然后启动客户端向服务器端发送数据. 服务器端收到客户端发送的数据,服务器端会响应应客户端,向客户端发送响应结果. 客户端读取服务器发送 ...

  7. 【转】php通过curl跨域向asp.net服务器上传文件及参数

    转:http://blog.sina.com.cn/s/blog_13331dce50102vq32.html 这是一个由php通过调用asp.net接口向asp.net服务器post上传文件及参数并 ...

  8. 【FTP】C# System.Net.FtpClient库连接ftp服务器(上传文件)

    如果自己单枪匹马写一个连接ftp服务器代码那是相当恐怖的(socket通信),有一个评价较高的dll库可以供我们使用. 那就是System.Net.FtpClient,链接地址:https://net ...

  9. iframe无刷新跨域上传文件并获取返回值

    通常我们会有一个统一的上传接口,这个接口会被其他的服务调用.如果出现不同域,还需要无刷新上传文件,并且获取返回值,这就有点麻烦了.比如,新浪微博启用了新域名www.weibo.com,但接口还是使用原 ...

随机推荐

  1. Go语言关键字之1--range

    https://blog.csdn.net/iamlihongwei/article/details/78842857 https://studygolang.com/articles/1952 ht ...

  2. Web开发中FormData对象的使用

    参考: FormData 对象的使用 - Web API 接口 | MDN

  3. Linux关于用户信息的一些命令

    1.用户增加删除[root@VM_0_13_centos ~]# useradd better407 #添加 better407 用户 [root@VM_0_13_centos ~]# passwd ...

  4. JedisCluster 链接redis集群

    先贴代码: <!-- redis客户端 --><dependency>  <groupId>redis.clients</groupId>  <a ...

  5. IDEA修改git账号及密码的方法

    IDEA修改git账号及密码的方法: 1.file->settings->passwords 2.重启IDEA 3.执行一次提交或更新 当执行提交或更新之后,idea会自动提示输入账号.密 ...

  6. AVplayer搭建ftp共享PC端

    1.安装FTP服务 2.关闭防火墙 3.添加FTP站点 设置ip时,需要查询本机的ip 本机测试 4.iphone安装AVPlayer,并设置

  7. Android NDK开发 JNI操作java构造方法,普通方法,静态方法(七)

    Android NDK开发 JNI操作java普通.静态.构造方法 1.Jni实例化一个Java类的实例jobject 1.通过FindClas( ),获取Java类的的jclass 2.通过GetM ...

  8. Surface Shader(表面着色器)

    Shader "Custom/Surface_Shadeer" { Properties {                                             ...

  9. (转)AIX修改系统时区的3种方法和AIX 时间问题(夏令时)

    原文:http://blog.csdn.net/fuwencaho/article/details/28267283 http://www.wo81.com/tec/os/aix/2014-04-30 ...

  10. 细讲递归(recursion)

    首先先对递归进行入门. 递归是以自相似的方式重复项目的过程.在编程语言中,如果程序允许您在同一函数内调用函数,则称其为函数的递归调用. 简而言之,递归就是函数的自身调用.可以看看下面的递归使用: vo ...