0 0

上传文件和图片tomcat停止之后文件也消失了10

//上传文件存放路径  
    private final static String UPLOADDIR = "/upload";  
    //上传文件集合  
    private List<File> file;  
    //上传文件名集合  
    private List<String> fileFileName;  
    //上传文件内容类型集合  
    private List<String> fileContentType;  
 
    public List<File> getFile() {  
        return file;  
    }  
 
    public void setFile(List<File> file) {  
        this.file = file;  
    }  
 
    public List<String> getFileFileName() {  
        return fileFileName;  
    }  
 
    public void setFileFileName(List<String> fileFileName) {  
        this.fileFileName = fileFileName;  
    }  
 
    public List<String> getFileContentType() {  
        return fileContentType;  
    }  
 
    public void setFileContentType(List<String> fileContentType) {  
        this.fileContentType = fileContentType;  
    }  
 
    public String execute() throws Exception {  
        for (int i = 0; i < file.size(); i++) {  
            //循环上传每个文件  
            uploadFile(i);  
        }  
        return "success";  
    }  
 
    //执行上传功能  
    private void uploadFile(int i) throws FileNotFoundException, IOException {  
        try {  
            InputStream in = new FileInputStream(file.get(i));  
            String dir = ServletActionContext.getRequest().getRealPath(UPLOADDIR);  
            File uploadFile = new File(dir, this.getFileFileName().get(i));  
            OutputStream out = new FileOutputStream(uploadFile);  
            byte[] buffer = new byte[1024 * 1024];  
            int length;  
            while ((length = in.read(buffer)) > 0) {  
                out.write(buffer, 0, length);  
            }  
            in.close();  
            out.close();  
        } catch (FileNotFoundException ex) {  
            ex.printStackTrace();  
        } catch (IOException ex) {  
            ex.printStackTrace();  
        }  
    }  

上传文件和图片之后它并没有保存在项目中的upload文件中 然后是直接在tomcat中创建一个新的upload但是tomcat停止之后文件就会销毁怎么回事啊
2012年3月17日 13:33

3个答案 按时间排序 按投票排序

0 0

1.

String tempPath = this.getClass().getResource("/").toURI().getPath();
			File file = new File(tempPath + File.separator
					+ "upload"+ File.separator);
			if (!file.exists() && !file.isDirectory()) {
				file.mkdirs();
			}

这样就可以保存到你项目的class文件夹下,web-inf/class

2.记得out.flush();不然就可能出错文件没写到服务器里

 while ((length = in.read(buffer)) > 0) {   
                out.write(buffer, 0, length);   
            }   
            out.flush();
            in.close();   
            out.close();   

2012年3月18日 00:19
0 0

1、文件上传
   FORM 
   要加入enctype="multipart/form-data"
   
   ACTION或SERVLET
   import org.apache.commons.fileupload.DiskFileUpload;
   import org.apache.commons.fileupload.FileItem;

   基本方法如下:
   String temp=request.getSession().getServletContext().getRealPath("/")+"temp";   //临时目录 
   String loadpath=request.getSession().getServletContext().getRealPath("/")+"Image"; //上传文件存放目录
   DiskFileUpload fu = new DiskFileUpload();
   fu.setSizeMax(1*1024*1024);   // 设置允许用户上传文件大小,单位:字节 
   fu.setSizeThreshold(4096);   // 设置最多只允许在内存中存储的数据,单位:字节 
   fu.setRepositoryPath(temp); // 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录 
   
   //开始读取上传信息 
   int index=0;
   List fileItems = fu.parseRequest(request);
   Iterator iter = fileItems.iterator(); // 依次处理每个上传的文件
   while (iter.hasNext())
   {
       FileItem item = (FileItem)iter.next();// 忽略其他不是文件域的所有表单信息
       if (!item.isFormField())
       {
           String name = item.getName();//获取上传文件名,包括路径
           name=name.substring(name.lastIndexOf("\\")+1);//从全路径中提取文件名
           long size = item.getSize();
           if((name==null||name.equals("")) && size==0) 
                 continue; 
           int point = name.indexOf(".");
           name=(new Date()).getTime()+name.substring(point,name.length())+index;
           index++;
           File fNew= new File(loadpath, name);
           item.write(fNew);
       }
       else //取出不是文件域的所有表单信息
       {
           String fieldvalue = item.getString();
    //如果包含中文应写为:(转为UTF-8编码)
           //String fieldvalue = new String(item.getString().getBytes(),"UTF-8");
       }
   }


   PS:同FORM的其他输入信息也将被当做数据流传输
       不能使用STRUTS的ACTIONFORM
       不能使用过滤类

2、图片预览
function previewA()
{ 
var x = document.getElementById("signImage"); //singimage为FORM中已存在的IMAGE标签ID
if(!x || !x.value) 
     return; 
var patn = /\.jpg$|\.jpeg$|\.gif$/i;           //正则表达式,判断所选文件是否图片
if(patn.test(x.value))
{    
     var y = document.getElementById("sign");   //sing为FORM存在的FILE标签ID 
     y.src = 'file://localhost/' + x.value;
     var img=document.getElementById('signImage');
     img.setAttribute('width','120');      
     img.setAttribute('height','90'); 
}
else
{    
     alert("您选择的似乎不是图像文件。");
}


2012年3月17日 14:52
0 0

tomcat相当于一个容器,把你的webapp放在里面运行,对于它来说你这些文件都是零时的,建议把文件写到其他目录下面

2012年3月17日 14:14

相关推荐

    上传war文件大小超过Tomcat7最大文件限制报错

    ### 上传WAR文件大小超过Tomcat 7最大文件限制报错 #### 背景介绍 在部署Web应用程序时,可能会遇到因WAR文件过大而无法正常部署的问题。具体表现为当WAR文件大小超过了Tomcat服务器配置的最大限制时,系统会拒绝...

    jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx

    本文主要介绍了jsp解决文件上传后重启Tomcat时文件自动删除问题,包括问题分析和详细解决方法。该问题是指在jsp项目中上传文件后,重启Tomcat服务器或清理缓存时,上传的文件会自动删除的问题。 问题分析 在jsp...

    文件上传到tomcat服务器

    用于web项目,将文件上传到tomcat服务器非项目文件目录下

    tomcat文件上传下载、删除

    在IT行业中,Tomcat作为一款广泛应用的开源Java Servlet容器,经常需要处理文件的上传、下载和删除等操作。本文将详细讲解如何在Tomcat环境中进行这些操作,以及解决可能出现的问题。 首先,我们要理解Tomcat在文件...

    android和tomcat文件上传和数据交互

    在IT行业中,Android和Tomcat之间的文件上传与数据交互是一个常见的需求,特别是在移动应用和服务器端数据处理的场景。在这个过程中,Android作为客户端,通过HTTP协议向运行在服务器上的Tomcat发送请求,实现文件的...

    tomcat 实现文件上传下载

    以上就是使用Struts2和Tomcat实现文件上传下载的基本流程。实际开发中,还需要考虑文件大小限制、多文件上传、错误处理、安全问题(如防止路径遍历攻击)等。通过这个示例,你可以了解到Struts2框架如何与Tomcat配合...

    tomcat上传下载文件

    以上就是关于“Tomcat上传下载文件”的知识点,包括了Struts2的文件上传处理、Servlet的文件下载实现以及相关的文件操作。在实际开发中,还需要考虑文件的安全性,例如防止上传恶意文件、限制上传文件大小、保护下载...

    Nginx和tomcat上传文件大小修改.txt

    Nginx和tomcat上传文件大小限制修改,Ngnix和tomcat默认对上传文件大小有限制。

    tomcat及其配置文件

    【描述】:“Tomcat、JDK以及Tomcat的一些配置文件,包括`server.xml`和Linux下使用`service`启动Tomcat的方法” Tomcat的运行离不开Java Development Kit(JDK),因为Tomcat需要JDK中的Java运行环境来解析和执行...

    java tomcat清楚tomcat下临时文件

    你也可以在Tomcat的配置文件`server.xml`中,调整`&lt;Host&gt;`或`&lt;Context&gt;`元素的`workDir`属性,指定一个临时文件的非默认位置,这样方便管理和清理。 总的来说,清理Java Tomcat的临时文件是优化服务器性能和维护的...

    经典的文件上传客户端和Tomcat服务端

    本项目名为"经典的文件上传客户端和Tomcat服务端",它涵盖了Android客户端和基于Java的Tomcat服务器之间的文件交互。这里我们将深入探讨相关知识点。 **Android 文件上传** 在Android平台上实现文件上传,主要涉及...

    图片上传至tomcat服务器

    ### 图片上传至Tomcat服务器知识点详解 #### 一、背景与目的 在现代Web应用开发过程中,上传图片是一项常见的需求。例如,在医疗系统中,医生的信息页面可能需要上传医生的照片。本文档将详细介绍如何使用Spring ...

    Tomcat启动停止脚本

    提供的"Tomcat停止启动脚本"可能是一个整合了启动和停止功能的自定义脚本,它可以更方便地在一个步骤中完成启动和停止的操作。这种自定义脚本可能会包含错误检查、日志记录等功能,提高管理和监控的效率。 五、安全...

    tomcat+tomcat插件+servlet文件上传jar包

    标题中的“tomcat+tomcat插件+servlet文件上传jar包”揭示了本文将要讨论的是如何在Tomcat服务器上实现文件上传功能,并且利用相关的Tomcat插件进行辅助开发。Tomcat是一款广泛使用的开源Java Servlet容器,它实现了...

    文件上传下载源代码和linux中tomcat发布包.rar

    标题中的"文件上传下载源代码和linux中tomcat发布包.rar"表明这是一个关于Java Web开发的资源包,其中包含了文件上传和下载的功能实现,并且可以在Linux环境下的Tomcat服务器上运行。这个压缩包可能是一个完整的项目...

    tomcat读取本地文件

    - 在前端JSP页面中,可以通过如下方式引用这些图片文件: ```jsp ${photoList[0].bigPhotoPath}" width="772" height="579" data-index="0" alt="${tenement.tenementInfo}" title="${tenement.tenementInfo}"/&gt; ...

    Android客户端上传数据到tomcat服务端的源码

    3. Multipart/form-data:如果需要上传文件,通常采用Multipart/form-data编码,这样可以同时上传文本数据和二进制文件。Android的OkHttp库支持这种方式,通过RequestBody创建FormData。 4. 文件选择器:在Android...

    Tomcat停止与启动shell

    标题 "Tomcat停止与启动shell" 指的是一个用于管理Tomcat服务器的脚本,通常这个`restart.sh`文件是用来自动化Tomcat服务的启动和停止操作的。Tomcat是Apache软件基金会的一个开源项目,是一个广泛使用的Java ...

    nginx TOMCAT 文件下载 上传 进度条 缓存

    标题 "nginx TOMCAT 文件下载 上传 进度条 缓存" 涉及到的是在Web服务器场景中,如何利用Nginx和Tomcat处理文件的下载、上传以及实现进度条显示和缓存优化的技术点。下面将详细介绍这些内容。 1. **Nginx与Tomcat的...

    TOMCAT文件上传控件

    标题中的"TOMCAT文件上传控件"指的是在Tomcat服务器环境下用于处理文件上传的一种功能组件。在Web开发中,特别是Java Web应用中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。传统的JSP SmartUpload是...

Global site tag (gtag.js) - Google Analytics