问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java获得上传文件的路径

发布网友 发布时间:2022-05-16 07:28

我来回答

2个回答

热心网友 时间:2023-10-15 05:44

commons-io下载地址:http://commons.apache.org/io/download_io.cgi

common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。
该组件简单易用,可实现一次上传一个或多个文件,并可*文件大小。
下载后解压zip包,将commons-fileupload.jar,和commons-io里面后缀为jar复制到你的项目的webapp\WEB-INF\lib\下,如果目录不存在请自建目录。

这个项目是用来上传文件,文件路径为workspace\项目名称\build\weboutput\file\项目下,如果没有该文件夹请创建一个。否则会发生找不到路径的情况
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
* Servlet implementation class FileUpload
*/
public class FileUpload extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public FileUpload() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}

/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//判断提交过来的表单是否为文件上传菜单
boolean isMultipart= ServletFileUpload.isMultipartContent(request);
if(isMultipart){
//构造一个文件上传处理对象
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

Iterator items;
try{
//解析表单中提交的所有文件内容
items=upload.parseRequest(request).iterator();
while(items.hasNext()){
FileItem item = (FileItem) items.next();
if(!item.isFormField()){
//取出上传文件的文件名称
String name = item.getName();
//取得上传文件以后的存储路径
String fileName=name.substring(name.lastIndexOf('\\')+1,name.length());
//上传文件以后的存储路径
String path= request.getRealPath("file")+File.separatorChar+fileName;

//上传文件
File uploaderFile = new File(path);
item.write(uploaderFile);
//打印上传成功信息
response.setContentType("text/html");
response.setCharacterEncoding("GB2312");
PrintWriter out = response.getWriter();

out.print("<font size='2'>上传文件为:"+name+"<br>保存的地址为"+path+ "</font>");

}
}
}catch(Exception e){
e.printStackTrace();
}

}

}

}

http://blog.163.com/lin305_gf/blog/static/969524402011718102116625/

这是给你转载的网易博客的
servlet上传文件

如果你是用的 框架 比如struts2 那就更简单一点了

热心网友 时间:2023-10-15 05:45

可以通过changeWorkingDirectory方法切换上传路径来进行文件上传。
上传方法举例:
/**
* 上传文件
*
* @param fileName
* @param plainFilePath 文件路径路径
* @param filepath
* @return
* @throws Exception
*/
public static String fileUploadByFtp(String plainFilePath, String fileName, String filepath) throws Exception {
FileInputStream fis = null;
ByteArrayOutputStream bos = null;
FTPClient ftpClient = new FTPClient();
String bl = "false";
try {
fis = new FileInputStream(plainFilePath);
bos = new ByteArrayOutputStream(fis.available());
byte[] buffer = new byte[1024];
int count = 0;
while ((count = fis.read(buffer)) != -1) {
bos.write(buffer, 0, count);
}
bos.flush();
Log.info("加密上传文件开始");
Log.info("连接远程上传服务器"+CCFCCBUtil.CCFCCBHOSTNAME+":"+22);
ftpClient.connect(CCFCCBUtil.CCFCCBHOSTNAME, 22);
ftpClient.login(CCFCCBUtil.CCFCCBLOGINNAME, CCFCCBUtil.CCFCCBLOGINPASSWORD);
FTPFile[] fs;
fs = ftpClient.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(filepath)) {
bl="true";
ftpClient.changeWorkingDirectory("/"+filepath+"");
}
}
Log.info("检查文件路径是否存在:/"+filepath);
if("false".equals(bl)){
ViewUtil.dataSEErrorPerformedCommon( "查询文件路径不存在:"+"/"+filepath);
return bl;
}
ftpClient.setBufferSize(1024);
ftpClient.setControlEncoding("GBK");
// 设置文件类型(二进制)
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpClient.storeFile(fileName, fis);
Log.info("上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/");
return bl;
} catch (Exception e) {
throw e;
} finally {
if (fis != null) {
try {
fis.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
if (bos != null) {
try {
bos.close();
} catch (Exception e) {
Log.info(e.getLocalizedMessage(), e);
}
}
}
}
备注:只需要修改上传的服务器地址、用户名、密码即可进行服务器访问上传。根据实际需要修改即可。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
一拳一拳打峰哥是什么歌_一拳一拳打峰哥歌曲介绍 网上办理这个准生证然后没有领取不知道点到哪了然后就没法再领取 绿油油的叠词是什么? 什么的小溪叠词填空 硅胶礼品特性 华东理工大学长江学院是一本吗 东华理工大学长江学院是公办还是民办大学 东华理工大学长江学院是一所... 模压硅胶制品如何成型的 东北理工大学长江学院是公办还是民办 东华理工大学长江学院是几本大学 玩具小马达上的电容是起什么作用的? 玩具车上的小马达能发电吗 玩具小马达把电线剪开里面的铜线露出来充电会触电吗? 大家觉得那种普通玩具上的小电机的寿命能有几个小时 玩具车380和390电机区别 小电机(玩具马达)用来发电最高可以输出多大的电量? 玩具小马达接口坏了如何修复 玩具小电机驱动和调速问题 请问玩具小电动机可以使用什么电池,纽扣电池可以持续转动吗? 一般玩具上的小电机,可以控制正反转吗? 计算机应用领域有哪三个方面? 怎么选择自来水过滤器?求建议!! 自来水过滤器哪种好? 英语完全零基础,想自学英标(完全不懂),请有经验的推荐英标学习的书籍和方法。谢谢!感谢!! 自来水过滤器的选购误区 买自来水过滤器要注意些什么问题啊? 我现在怀孕3个月,可以喝维他柠檬茶吗 很爱很爱一个人在一起很幸福的句子 曾经很爱很爱一个人,为什么分手了后慢慢的就忘了。看着照片会觉得惋惜 公务员最晚多大岁数可以考? 玩具电机如何降低转速,而提高转矩? commons-fileupload Nosuchmethod parseRequest 玩具四驱车上的小马达属于哪一种直流电动机? commons-fileupload parseRequest 返回空 报java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory 梦之队的队员有哪些? 软件包 org.apache.commons.fileupload 不存在????我已经把commons org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart&#47;form-d 快船队哈雷尔成为最佳第六人,他是怎么打出个人价值的? 菟丝子和什么搭配种植产量高? 怎么样知道自己是不是给法院起诉了? 喷灌地能能种菟丝子吗? 公务员 医保交多少钱一个月多少钱 公务员 医保交多少 公务员医保卡多少钱一个月多少钱 公务员医保卡一月多钱 公务员医保卡里多少钱一个月多少钱一个月 浙江公务员医保 缴多少 公务员医保扣费标准是多少 公务员医保卡里多少钱一个月