1、创建文件夹

/**
* 判断文件夹是否存在
* @param myPath
*/
public static void judeDirExists(File myPath) {
if (!myPath.exists()) {
myPath.mkdirs();//多级文件夹目录
//myPpath.mkdir();//单级文件夹目录
System.out.println("创建文件夹路径为:"+ myPath.getPath());
}
}

2、修改文件夹名称

 /**
* 通过文件路径直接修改文件名
* @param filePath 需要修改的文件的完整路径
* @param newFileName 需要修改的文件的名称
* @return
*/
private static String modifyFileName(String filePath, String newFileName) {
File f = new File(filePath);
if (!f.exists()) { // 判断原文件是否存在
return null;
}
newFileName = newFileName.trim();
if ("".equals(newFileName)) // 文件名不能为空
return null;
String newFilePath = null;
if (f.isDirectory()) { // 判断是否为文件夹
newFilePath = filePath.substring(0, filePath.lastIndexOf("/")) + "/" + newFileName;
} else {
newFilePath = filePath.substring(0, filePath.lastIndexOf("/"))+ "/" + newFileName + filePath.substring(filePath.lastIndexOf("."));
}
File nf = new File(newFilePath);
if (!f.exists()) { // 判断需要修改为的文件是否存在(防止文件名冲突)
return null;
}
try {
f.renameTo(nf); // 修改文件名
} catch(Exception err) {
err.printStackTrace();
return null;
} return newFilePath;
}

3、文件附件形式下载

/**
* 下载文档文件
* @param request
* @param response
* @param file_name
* @throws IOException
*/
@RequestMapping(value = "/download_dex_privacy.do/{file_name}")
public void downloadDexDoc(@PathVariable("file_name") String file_name,HttpServletRequest request, HttpServletResponse response) throws IOException {
String path=request.getServletContext().getRealPath("/WEB-INF/classes/dex_doc");
System.out.println(path);
File file=new File(path+"/"+file_name);
// 获取输入流
InputStream bis = new BufferedInputStream(new FileInputStream(file));
// 假如以中文名下载的话
// 转码,免得文件名中文乱码
file_name = URLEncoder.encode(file_name, "UTF-8");
// 设置文件下载头
response.addHeader("Content-Disposition", "attachment;filename=" + file_name);
// 1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
response.setContentType("multipart/form-data");
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
int len = 0;
while ((len = bis.read()) != -1) {
out.write(len);
out.flush();
}
out.close();
}

4、上传文件

/**
* 添用户收款方式信息
* @param receipt
* @return
*/
@RequestMapping(value = "add.json")
@ResponseBody
public ReturnReceipt addReceipt(@RequestParam("file") MultipartFile file, String fundsPassword, Receipt receipt,HttpServletRequest request, HttpServletResponse response) {
BasePage_Model pageModel=SetDefaultPage(request);
ReturnReceipt returnReceipt=new ReturnReceipt();
if(pageModel.user_cookie_model.phone==null){
try {
response.sendRedirect("/login");
return null;
} catch (IOException e) {
logger.error("ReceiptController==>addReceipt==>未登录跳转异常==>"+e.getMessage());
}
}
if (file.isEmpty()) {
returnReceipt.status=ReturnReceipt.status_102;
returnReceipt.message="上传失败,请选择文件";
}else{
ReceiptMode receiptMode=new ReceiptMode();
receiptMode.id=receipt.receiptModeId;
ReturnReceiptMode returnReceiptMode=receiptModeDao.queryReceiptModeById(receiptMode);
if(returnReceiptMode.status==ReturnReceiptMode.status_100){
ReceiptMode receipt_mode=returnReceiptMode.receipt_mode;
String fileName= pageModel.user_cookie_model.phone+DateUtil.getTimeStamp();
boolean file_state=uploadFile(file,receipt_mode.name,fileName);
if(file_state){
Receipt _receipt=new Receipt();
_receipt.phone=pageModel.user_cookie_model.phone;
_receipt.receiptModeId=receipt.receiptModeId;
_receipt.receiptInfo=receipt.receiptInfo+","+fileName;
ReturnReceipt _returnReceipt=receiptDao.addReceipt(_receipt);
returnReceipt.status=_returnReceipt.status;
returnReceipt.message=_returnReceipt.message;
}else{
returnReceipt.status=ReturnReceipt.status_103;
returnReceipt.message="添加收款方式非法操作";
}
}else{
returnReceipt.status=ReturnReceipt.status_103;
returnReceipt.message="添加收款方式非法操作";
}
} return returnReceipt;
} public boolean uploadFile(MultipartFile file,String receiptName,String fileName){
String filePath = ConfigDefault.receipt_mode_url + "/" + receiptName + "/";
File dir = new File(filePath);
if (!dir.exists()) {
dir.mkdirs();
}
File dest = new File(filePath + fileName + ".png");
try {
file.transferTo(dest);
return true;
} catch (IOException e) {
logger.error("ReceiptController==>uploadFile==>IOException==>" + e.getMessage());
return false;
}
}

 

5、

Java创建文件夹、创建文件、上传文件,下载文件的更多相关文章

  1. 使用paramiko模块远程登录并上传或下载文件

    1.paramiko安装 1)安装PyCrypto2.6 for Python 2.7 64bit.地址:http://www.voidspace.org.uk/python/modules.shtm ...

  2. ftp上传或下载文件工具类

    FtpTransferUtil.java工具类,向ftp上传或下载文件: package utils; import java.io.File; import java.io.FileOutputSt ...

  3. 如何在Linux中使用sFTP上传或下载文件与文件夹

    如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...

  4. Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)

            一.接收参数(postman发送) 1.form表单 @RequestParam("name") String name 会把传递过来的Form表单中的name对应 ...

  5. Linux学习笔记:使用ftp命令上传和下载文件

    Linux中如何使用ftp命令,包括如何连接ftp服务器,上传or下载文件以及创建文件夹.虽然现在有很多ftp桌面应用(例如:FlashFXP),但是在服务器.SSH.远程会话中掌握命令行ftp的使用 ...

  6. 11、只允许在主目录下上传和下载文件,不允许用putty登录

    创建用户xiao,   使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...

  7. 利用SecureCRT上传、下载文件(使用sz与rz命令),超实用!

    利用SecureCRT上传.下载文件(使用sz与rz命令),超实用! 文章来源:http://blog.csdn.net/dongqinliuzi/article/details/39623169 借 ...

  8. Linux--用SecureCRT来上传和下载文件

    SecureCRT下的文件传输协议有以下几种:ASCII.Xmodem.Ymodem.Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. Xmodem:这种古老的传输协议速度较慢,但由 ...

  9. js上传文件带参数,并且,返回给前台文件路径,解析上传的xml文件,存储到数据库中

    ajaxfileupload.js jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId ...

  10. SecureCRT来上传和下载文件

    引用:https://www.cnblogs.com/zhengyihan1216/p/6260667.html Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议 ...

随机推荐

  1. POJ 2481:Cows 树状数组

    Cows Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 14906   Accepted: 4941 Description ...

  2. JS - 使 input 失去焦点

    $(document).ready(function(){ $("body").click(function(){ if(!event.srcElement.type) {     ...

  3. SpringBoot之Order注解启动顺序

    order的规则: order的值越小,优先级越高order如果不标注数字,默认最低优先级,因为其默认值是int最大值该注解等同于实现Ordered接口getOrder方法,并返回数字. @Reten ...

  4. ajax 跨域webapi 最简单的demo(只介绍Get)

    这几天遇到一个nodejs的项目,使用VSCode开发,需要连接数据库的,但是用nodejs连接数据库比较繁琐,需要安装很多东西,本人也懒得去研究了.后来想到建一个WebAPI然后用ajax来调用,避 ...

  5. [GXYCTF2019]Ping Ping Ping

    0x00 知识点 命令执行变量拼接 /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php 过滤bash用sh执行 echo$IFS$1Y2F0IGZsYWcucGhw|base6 ...

  6. Causal Corpus 事件因果关系语料统计

    Causal Corpus 事件因果关系语料统计 本文是对因果关系抽取领域数据库标注及开源情况的统计.除了对因果关系的标注,一些类似的语料也包含在内,从而为语料的使用提供灵活性,可以根据不同的目标选取 ...

  7. js 关联数组

    踩得坑: JS ,通过 new Array()创建了一个数组: var param =  new Array();param["key1"] = value1;param[&quo ...

  8. 教你如何使用JavaScript入门

    JavaScript简介   JavaScript是NetScape公司为Navigator浏览器开发的,是web前端卸载HTML文件中的一种脚本语言,能实现网页内容的交互显示.当用户在客户端显示该网 ...

  9. HDU 1588 矩阵快速幂 嵌套矩阵

    这个题目搞了我差不多一个下午,之前自己推出一个公式,即 f[n+k]=k*f[n]+f[n-1]结果发现根本不能用,无法降低复杂度. 后来又个博客的做法相当叼,就按他的做法来了 即 最终求得是 S(n ...

  10. getitem

    #一般如果想使用索引访问元素时,就可以在类中定义这个方法(__getitem__(self, key) )class Foo(object): def __init__(self): self.dat ...