上传文件

/**
* 上传文件
*
* @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;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011108266/article/details/53995682
文章标签: 上传文件
个人分类: 上传文件
上一篇Excel数据下载
下一篇juery同时判断多个输入框是否为空
想对作者说点什么? 我来说一句

通用的上传文件详细操作

2009年06月10日 8KB 下载

samba 如何上传文件

2010年11月16日 2KB 下载

上传文件AJAX

2018年05月15日 866KB 下载

Java多线程设计模式上传文件

2009年02月10日 10.8MB 下载

压缩分卷论坛专用1.0

2010年02月08日 2KB 下载

上传文件漏洞总结

2018年01月10日 4.36MB 下载

struts2.0上传文件

2009年07月17日 3.64MB 下载

flash上传文件flash上传文件

2010年06月05日 115KB 下载

jsp上传文件样例

2011年09月28日 13KB 下载

SliverLight 上传文件Demo

2011年04月14日 211KB 下载

没有更多推荐了,返回首页

关闭
关闭