① java中文件上传 new File(文件路径)问题
通过 ”new FileInputStream(文件路径)“的形式进行上传即可。举例: /** * 加密文件 * * @param fileName * @param date * @param plainFilePath 明文文件路径路径 * @param filepath * @return * @throws Exception */ public static String encodeAESFileUploadByFtp(String plainFilePath, String fileName, String date,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("加密上传文件开始"); byte[] bytes = encodeAES(key, bos.toByteArray()); ByteArrayInputStream is = new ByteArrayInputStream(bytes); Log.info("连接远程上传服务器"+CMBCUtil.CMBCHOSTNAME+":"+2021); ftpClient.connect(CMBCUtil.CMBCHOSTNAME, 2021); ftpClient.login(CMBCUtil.CMBCLOGINNAME, CMBCUtil.CMBCLOGINPASSWORD);// Log.info("连接远程上传服务器"+"192.168.54.106:"+2021);// ftpClient.connect("192.168.54.106", 2021);// ftpClient.login("hkrt-CMBCHK", "3OLJheziiKnkVcu7Sigz"); FTPFile[] fs; fs = ftpClient.listFiles(); for (FTPFile ff : fs) { if (ff.getName().equals(filepath)) { bl="true"; ftpClient.changeWorkingDirectory("/"+filepath+""); ftpClient.makeDirectory(date); ftpClient.changeWorkingDirectory("/"+filepath+"/" + date); } } 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, is); Log.info("加密上传文件成功:"+fileName+"。文件保存路径:"+"/"+filepath+"/" + date); 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); } } } }
② java指定客户端文件路径,上传到服务器上在线等答案,知道的回答下。
除了ie浏览器可以获取的到客户端文件路径,其余的所有浏览器都是不支持此功能的版。所以现在这个功能是权不被认可的。解释:上传文件的时候如果浏览器直接读取客户端的文件路径,存在一定的安全隐患的,很容易遭到木马或者是应用程序的恶意窜改,所以现在已经不被支持了,建议通过io的形式进行实现。
③ java文件上传文件路径
String newFilePath = "new Path" + "\\" + newfile.getFileName;File file = new File(String newFilePath);
④ java怎么获取上传文件的路径
java文件中获得路径Thread.currentThread().getContextClassLoader().getResource("") //获得资源文件(.class文件)所在路径ClassLoader.getSystemResource("")Class_Name.class.getClassLoader().getResource("")Class_Name.class .getResource("/") Class_Name.class .getResource("") // 获得当前类所在路径System.getProperty("user.dir") // 获得项目根目录的绝对路径System.getProperty("java.class.path") //得到类路径和包路径打印输出依次如下:file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/F:\work_litao\uri_testF:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4j.jar2、 jsP中获得当前应用的相对路径和绝对路径根目录所对应的绝对路径:request.getRequestURI()文件的绝对路径 :application.getRealPath(request.getRequestURI());当前web应用的绝对路径 :application.getRealPath("/");取得请求文件的上层目录:new File(application.getRealPath(request.getRequestURI())).getParent()
⑤ java中怎么把文件上传到服务器的指定路径
文件从本地到服务器的功能,其实是为了解决目前浏览器不支持获取本地文件全路径。不得已而想到上传到服务器的固定目录,从而方便项目获取文件,进而使程序支持EXCEL批量导入数据。
java中文件上传到服务器的指定路径的代码:
在前台界面中输入:
<form method="post" enctype="multipart/form-data" action="../manage/excelImport.do">
请选文件:<input type="file" name="excelFile">
<input type="submit" value="导入" onclick="return impExcel();"/>
</form>
action中获取前台传来数据并保存
/**
* excel 导入文件
* @return
* @throws IOException
*/
@RequestMapping("/usermanager/excelImport.do")
public String excelImport(
String filePath,
MultipartFile excelFile,HttpServletRequest request) throws IOException{
log.info("<<<<<<action:{} Method:{} start>>>>>>","usermanager","excelImport" );
if (excelFile != null){
String filename=excelFile.getOriginalFilename();
String a=request.getRealPath("u/cms/www/201509");
SaveFileFromInputStream(excelFile.getInputStream(),request.getRealPath("u/cms/www/201509"),filename);//保存到服务器的路径
}
log.info("<<<<<<action:{} Method:{} end>>>>>>","usermanager","excelImport" );
return "";
}
/**
* 将MultipartFile转化为file并保存到服务器上的某地
*/
public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException
{
FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);
System.out.println("————"+path + "/"+ savefile);
byte[] buffer =new byte[1024*1024];
int bytesum = 0;
int byteread = 0;
while ((byteread=stream.read(buffer))!=-1)
{
bytesum+=byteread;
fs.write(buffer,0,byteread);
fs.flush();
}
fs.close();
stream.close();
}
⑥ java jsp 文件(图片)上传 存储路径
method方法抄里面写后台的控制类上传方法,方法里面能够获取该文件,然后以流的方式写入到指定文件夹下的某个文件中。
参考下这个网页链接
<form method="post" action="/TomcatTest/UploadServlet" enctype="multipart/form-data">
enctype="multipart/form-data" 这个必须要写,action后台接收的方法,文件保存路径在控制器中可以自己随便指定。
⑦ java如何获取jsp页面上传的文件路径
正如一楼所说,浏览器版本太高,从安全角度,禁止获取全文件路径,你可以换低版本浏览器试试,不保证正确,但是你可以获取到自己上传到的服务器的文件的全路径
⑧ java怎样获取上传文件真实路径
可以通过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);}}}}备注:只需要修改上传的服务器地址、用户名、密码即可进行服务器访问上传。根据实际需要修改即可。
⑨ java中怎么把文件上传到服务器的指定路径
stringrealpath=servletactioncontext.getservletcontext().getrealpath("/upload");//获取服务器路径string[]targetfilename=uploadfilename;for(inti=0;i<upload.length;i++){filetarget=newfile(realpath,targetfilename[i]);fileutils.file(upload[i],target);//这是一个文件复制类file()里面就是io操作,如果你不用这个类也可以自己写一个io复制文件的类}其中privatefile[]upload;//实际上传文件privatestring[]uploadcontenttype;//文件的内容类型privatestring[]uploadfilename;//上传文件名这三个参数必须这样命名,因为文件上传控件默认是封装了这3个参数的,且在action里面他们应有get,set方法
⑩ java获得上传文件的路径
可以通过方法切换上传路径来进行文件上传。上传方法举例:/*** 上传文件** @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);}}}}备注:只需要修改上传的服务器地址、用户名、密码即可进行服务器访问上传。根据实际需要修改即可。
未经允许不得转载:山九号 » 文件上传路径java|java中怎么把文件上传到服务器的指定路径