android客户端上传文件 至java服务器,服务器在tomcat中保存,求代码

android客户端上传文件 至java服务器,服务器在tomcat中保存,求代码,第1张

服务器端写个servlet,然后在doPost()方法里处理客户端上传文件,大概代码:

DiskFileItemFactory

factory

=

new

DiskFileItemFactory();

factorysetSizeThreshold(1024

1024);

//

设置最多只允许在内存中存储的数据,

单位:字节

factorysetRepository(cachepath);

//

设置一旦文件大小超过设定值时数据存放的目录

ServletFileUpload

srvFileUpload

=

new

ServletFileUpload(factory);

srvFileUploadsetSizeMax(1024

1024

1024);

//

设置允许用户上传文件大小,

单位:字节

//

开始读取上传信息

List

fileItems

=

null;

try

{

fileItems

=

srvFileUploadparseRequest(request);

}

catch

(Exception

e)

{

Systemoutprintln("获取上传信息。。。。。。失败");

}

//

依次处理每个上传的文件

Iterator

iter

=

fileItemsiterator();

while

(iterhasNext())

{

FileItem

item

=

(FileItem)

iternext();

//

忽略其他不是文件域的所有表单信息

if

(!itemisFormField())

{

//

取出文件域的所有表单信息

}

else

{

//

取出不是文件域的所有表单信息

}

}

文件上传到A以后 放到服务器上面 然后他就有一个绝对的访问路径 也就是对应一个绝对的url 这样就好办了

Java提供了对URL访问和大量的流操作的的API,可以很容易的完成对网络上资源的存取,下面的代码段就完成了对一个网站的资源进行访问:

destUrl="http://wwwyourwebcom/java/Afilezip";

//假设你把文件放到webroot底下的java文件里面

url = new URL(destUrl);

httpUrl = (HttpURLConnection) urlopenConnection();

//连接指定的网络资源

httpUrlconnect();

//获取网络输入流

bis = new BufferedInputStream(httpUrlgetInputStream());

得到流后下面你自己想怎么操作就怎么操作了

对于怎么得到资源的连接地址这个方法很多 你可以专门提供一个Servlet 获取到输出的流后 Responsewrite转门提供服务器已上传的文件 文件名可以一天位单位返回

客户端用与上面同样的方法得到文件名后 拆分 然后再继续循环调用上面的方法 下载文件就ok了

呵呵 希望可以帮助到你

1、获取服务器指定目录路径path

2、复制文件

参考代码

 String dir = "/a/b/c/";

 String path = requestgetSession()getServletContext()getRealPath(dir)+"\\"+filegetOriginalFilename();

 //path 为服务器在硬盘的绝对路径 如H:\tomcat\webapps\youproject\a\b\c\文件名txt

File newFile=new File(path);

filetransferTo(newFile); //复制文件

如果服务器开通了ftp服务,你的客户端可以实现一个ftp的客户端,通过ftp服务将文件上传到服务器的指定目录下,可以使用orgapachecommonsnetftpFTPClient这个类去实现,非常的简单,网上有很多现成的代码可以用

一般linux下传输文件到windows,直接用发ftp就行

,具体操作1、在windows下,点开始按钮,选:运行,进入DOS

2、在dos下面输入ftp

19216811(liunx服务器IP地址)然后提示输入,用户名,密码

进入linux服务器的FTP>界面,此时输入binary(binary是安全传输方式)

3、此时输入cd

/usr(用cd命令切换到相应传输目录)

4输入

get

find

(要传输的文件)

搞定

String realpath = ServletActionContextgetServletContext()getRealPath("/upload") ;//获取服务器路径

        String[] targetFileName = uploadFileName;

        for (int i = 0; i < uploadlength; i++) {

           File target = new File(realpath, targetFileName[i]);

              FileUtilscopyFile(upload[i], target); 

              //这是一个文件复制类copyFile()里面就是IO操作,如果你不用这个类也可以自己写一个IO复制文件的类    

         } 

其中private File[] upload;// 实际上传文件

    private String[] uploadContentType; // 文件的内容类型

    private String[] uploadFileName; // 上传文件名

这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法!

上传文件时,需要给SmartUpload传一个上传文件的保存地址,一般都用一个String来表示,使用request来获得。比如,你要把文件保存在项目路径下的upload文件夹,刚:

String

path

=

requestgetRealPath("upload");//获取upload文

//夹的绝对路径。

//得到:c://项目名/upload/

然后再拼上你的文件名,比如你上传一个叫testtxt的文件,则全部的URL为:

path

+

fileName

=

"c:///项目名/upload/"+"texttxt";

在实际的编程中,其实数据库只需要保存fileName就可以了,path作为配置,每次系统加载时再去读取,这样做的好处是:系统的环境变化时,只需要修改配置文件就能够搞定,而且不会重复保存多余的路径(因为路径都是一样的)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » android客户端上传文件 至java服务器,服务器在tomcat中保存,求代码

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情