上传文件

原创 2017年01月03日 16:34:44

/**
* 上传文件
*
* @param tempfile文件对象
* @param srcurl原始存放地址
* @param uploadFileFileName文件名称
* @param uploadFileContentType文件类型
* @param dir指定文件夹 例如 upload
*
* @return
*/
public String fileupload(File tempfile, String srcurl,
String uploadFileFileName, String uploadFileContentType, String dir) throws IOException
{
if (tempfile == null)
return null;
if (uploadFileFileName == null)
return null;
if (null == dir || dir.length() == 0)
dir = “upload”;
// 基于myFile创建一个文件输入流
InputStream is = new FileInputStream(tempfile);
// 设置上传文件目录
String datetime = System.currentTimeMillis() + “”;
String uploadPath = “”;
if (StringUtils.isNotBlank(srcurl))
{
try
{
//uploadPath = ServletActionContext.getServletContext().getRealPath(“/” + dir + “/”) + “/” + srcurl.substring(0, srcurl.lastIndexOf(“/”));
//原文件路径
uploadPath = ServletActionContext.getServletContext().getRealPath(“/” + srcurl.substring(0, srcurl.lastIndexOf(“/”)));
} catch (Exception e)
{
uploadPath = ServletActionContext.getServletContext().getRealPath(“/” + dir + “/” + datetime + “/”);
}
System.out.println(uploadPath);
} else
{
//如果原文件路径不存在,则重新生成新路径
uploadPath = ServletActionContext.getServletContext().getRealPath(“/” + dir + “/” + datetime + “/”);
}
uploadFileFileName = getFileName(uploadFileFileName, uploadPath);

    File file = new File(uploadPath);
    if (!file.exists())
        file.mkdirs();
    // 设置目标文件
    File toFile = new File(uploadPath, uploadFileFileName);
    // 创建一个输出流
    OutputStream os = new FileOutputStream(toFile);
    // 设置缓存
    byte[] buffer = new byte[1024];
    int length = 0;
    // 读取myFile文件输出到toFile文件中
    while ((length = is.read(buffer)) > 0)
    {
        os.write(buffer, 0, length);
    }
    // 关闭输入流
    is.close();
    // 关闭输出流
    os.close();
    uploadPath = uploadPath.replaceAll("\\\\", "/");
    String filepath = (uploadPath + "/" + uploadFileFileName).substring((uploadPath + "/" + uploadFileFileName).indexOf(dir));
    return (filepath.replaceAll("\\\\", "/"));
}

public String getFileName(String uploadFileFileName, String uploadPath)
{
    try
    {
        if (null != uploadFileFileName)
        {
            uploadFileFileName = UUID.randomUUID().toString() + uploadFileFileName.substring(uploadFileFileName.lastIndexOf("."));
        }
        File file = new File(uploadPath + uploadFileFileName);
        if (file.exists())
        {
            uploadFileFileName = getFileName(uploadFileFileName, uploadPath);
        }
        return uploadFileFileName;
    } catch (Exception e)
    {
        e.printStackTrace();
    }
    return uploadFileFileName;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

struts文件上传

  • 2017年11月06日 14:47
  • 3KB
  • 下载

文件上传漏洞(绕过姿势)

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的知识。俗话说,知己知彼方能百战不殆,因此...
  • zxchhyg
  • zxchhyg
  • 2017年06月01日 14:21
  • 1175

webuploader实现大文件分片上传

  • 2017年11月02日 10:07
  • 8KB
  • 下载

c#同时上传文件和参数

  • 2017年10月31日 15:40
  • 34KB
  • 下载

06_Java中文件上传与下载

文件上传的准备:1.表单中的enctype的值需要修改为:multipart/form-data 注意:修改之后,我们在Servlet就不能够再通过request.getParameter(S...

最好用的上传文件-uplodifive

  • 2017年11月20日 10:17
  • 63KB
  • 下载

Spring MVC文件上传

  • 2017年11月17日 23:50
  • 15.44MB
  • 下载

ajax异步上传文件/图片

JS前端 注意:ajaxFileUpload需要有jQuery的支持,所以这段JS代码需要放在引入的jQuery代码后面,或者放在$.ready(function(){})的方法里面,不然会报错 /...

文件上传的jar

  • 2017年11月15日 16:53
  • 217KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传文件
举报原因:
原因补充:

(最多只允许输入30个字)