javaWeb能和ftp实现大文件上传吗

javaWeb能和ftp实现大文件上传吗,第1张

java上传可以使用common-fileupload上传组件的。common-fileupload是jakarta项棚配蚂目组开发的一个功能很强大的上传文件组件下面先介绍上传文件到服务器(多文件上传):import javax.servlet.*

import javax.servlet.http.*

import java.io.*

import java.util.*

import java.util.regex.*

import org.apache.commons.fileupload.*

public class upload extends HttpServlet {

private static final String CONTENT_TYPE = "text/htmlcharset=GB2312"

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(CONTENT_TYPE)

PrintWriter out=response.getWriter()

try {

DiskFileUpload fu = new DiskFileUpload()

// 设置允许用户上传文件大小,单位:字节,这里设为2m

fu.setSizeMax(2*1024*1024)

// 设置最多只允许在内存中存储的数据卖缓,单位:字节

fu.setSizeThreshold(4096)

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fu.setRepositoryPath("c:\\windows\\temp")

//开始读取上传信息

List fileItems = fu.parseRequest(request)

// 依次处理每个上传的文件

Iterator iter = fileItems.iterator()//正则匹配,过滤路径取文件名

String regExp=".+\\\\(.+)$"//过滤掉的文件类型

String[] errorType={".exe",".com",".cgi",".asp"}

Pattern p = Pattern.compile(regExp)

while (iter.hasNext()) {

FileItem item = (FileItem)iter.next()

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

if (!item.isFormField()) {

String name = item.getName()

long size = item.getSize()

if((name==null||name.equals("")) &&size==0)

continue

Matcher m = p.matcher(name)

boolean result = m.find()

if (result){

for (int temp=0temp if (m.group(1).endsWith(errorType[temp])){

throw new IOException(name+": wrong type")

}

}

try{//保存上传的文件到指定的目录//在下文中上传文件至数据库时,将对这里改链埋写

item.write(new File("d:\\" + m.group(1))) out.print(name+" "+size+"

")

}

catch(Exception e){

out.println(e)

}}

else

{

throw new IOException("fail to upload")

}

}

}

}

catch (IOException e){

out.println(e)

}

catch (FileUploadException e){

out.println(e)

}

}

}

对于非托管资源 建议使用 using 来释放

你应该要写入日志,光看代码是很难看出橡咐问题,写入日志 它是在什么地方出错了,

发生超时一般大多数情况是网络问题,具体还是需要写入日志查看一下是那一块问题,

如果辩如行是自动化的 应该要设计好 网络各种问题 给它尝试重试携哗的机会

FtpWebRequest ftp = (FtpWebRequest)WebRequest.Create(new Uri("悄差ftp:/此运袭森兄/xxx.xxx.xxx.xxx"))

ftp.Credentials=new NetworkCredential("xxx","xxx")

ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails

ftp.UseBinary = true

ftp.GetResponse()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/8201814.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存