当前位置:  技术问答>java相关

关于获取文件名的问题

    来源: 互联网  发布时间:2015-04-29

    本文导语:  我用         来获取一个文件,但我无法在下一个页面中用getParameter("filename")来得到 文件名,为什么?怎样才可以得到? // 我是过以下几种方法: 当存在ENCTYPE="multipart/form-data"时,下一个页面getParameter()方法失效...

我用

   

   

来获取一个文件,但我无法在下一个页面中用getParameter("filename")来得到
文件名,为什么?怎样才可以得到?
//
我是过以下几种方法:
当存在ENCTYPE="multipart/form-data"时,下一个页面getParameter()方法失效。
但如果要上传文件,这句非要不可。
问题:
1。ENCTYPE="multipart/form-data这句是什么意思?
2。那里有比较好的html语言中文教程?
3。怎么可以得到上面说的文件名?

|
使用
ENCTYPE="multipart/form-data和POST時getParameter()方法取不了值只能用
java.util.Enumeration requstStr = mySmartUpload.getRequest().getParameterNames();
其實filename已經不用妳去取了,為何要這么做呢?

|
将网页的request传给下面的class,就可以上传
而且可以解析出文件名,你看一下第一个函数
package expressBeans;

import java.io.*;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.*;

public class upload {

public String[] sourcefile = new String[255];//源文件名
public String objectpath = "c:/";//目标文件目录
public String[] suffix = new String[255];//文件后缀名
public String[] objectfilename = new String[255];//目标文件名
public ServletInputStream sis = null;//输入流
public String[] description = new String[255];//描述状态
public long size = 100*1024;//限制大小
private int count = 0;//已传输文件数目
private byte[] b = new byte[4096];//字节流存放数组
private boolean successful = true;

public void setSourcefile(HttpServletRequest request,HttpServletResponse response) throws java.io.IOException{
    sis = request.getInputStream();
    int a = 0;
    int k = 0;
    String s = "";
    while((a = sis.readLine(b,0,b.length)) != -1){
        s = new String(b,0,a);
       if((k = s.indexOf("filename=")) != -1){
        s = s.substring(k+10);

        k = s.indexOf(""");

        s = s.substring(0,k);
        sourcefile[count] = s;
        k = s.lastIndexOf(".");
        suffix[count] = s.substring(k+1);
        System.out.println(count);
        System.out.println(suffix[count]);
//        if(canTransfer(count))
System.out.println("trans...");
       transferfile(count);
       System.out.println("trans...end");
        }
    if(!successful) break;
  }
  String url1 = response.encodeURL("/tech-qa-java/uploadresult.html");
  response.sendRedirect(url1);
}
public int getCount(){
    return count;
}

public String[] getSourcefile(){
    return sourcefile;
}

public void setObjectpath(String objectpath){
    this.objectpath = objectpath;
}
public String getObjectpath(){
    return objectpath;
}

private boolean canTransfer(int i){
    suffix[i] = suffix[i].toLowerCase();
    //这个是我用来传图片的,各位可以把后缀名改掉或者不要这个条件
   // if(sourcefile[i].equals("")||(!suffix[i].equals("gif")&&!suffix[i].equals("jpg")&&!suffix[i].equals("jpeg"))) {description[i]="ERR suffix is wrong";return false;}
    //else
    return true;
}

private void transferfile(int i){

    String x = Long.toString(new java.util.Date().getTime());
    try{
      objectfilename[i] = x+"."+suffix[i];
      System.out.println("filename"+objectfilename[i]);
      FileOutputStream out = new FileOutputStream(objectpath+objectfilename[i]);
      int a = 0;
      int k = 0;
      long hastransfered = 0;//标示已经传输的字节数
      String s = "";
      while((a = sis.readLine(b,0,b.length)) != -1){
            s = new String(b,0,a);
           if((k = s.indexOf("Content-Type:")) != -1) break;
      }
      sis.readLine(b,0,b.length);
      while((a = sis.readLine(b,0,b.length)) != -1){
          s = new String(b,0,a);
          if((b[0]==45)&&(b[1]==45)&&(b[2]==45)&&(b[3]==45)&&(b[4]==45)) break;
          out.write(b,0,a);
          hastransfered+=a;
          if(hastransfered>=size){
              description[count] = "ERR The file "+sourcefile[count]+" is too large to transfer. The whole process is interrupted.";
              successful = false;
              break;
          }
      }
      if(successful) description[count] = "Right The file "+sourcefile[count]+" has been transfered successfully.";
            ++count;
            out.close();

          if(!successful){
                sis.close();
                File tmp = new File(objectpath+objectfilename[count-1]);
                tmp.delete();
            }
      }
      catch(IOException ioe){
          description[i]=ioe.toString();
        }

}

public upload(){
//可以在构建器里面构建服务器上传目录,也可以在javabean调用的时候自己构建
      setObjectpath("D:/bea/wlserver6.1/config/examples/applications/DefaultWebApp/images/");
    }
}

    
 
 

您可能感兴趣的文章:

  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
  • 请问bash中如何获取一个项目目录下的执行文件的文件名?
  • 如何从用户名获取其对应的终端文件名?
  • Shell获取文件的文件名和扩展名的例子
  • shell 获取解压后的文件名
  • 如何用shell获取linux目录下的文件名呢?
  • 关于popen调用ls获取文件名的问题
  • java字符串切割实例学习(获取文件名)
  • 获取某路径下的所有文件名并保存到数组
  • 紧急求助:怎么获取一个目录中的所有目录和文件名?
  • C# 获取路径中,文件名、目录、扩展名的代码
  • web.py获取上传文件名的正确方法
  • c 语言怎样获取一个文件夹下的所有文件名和文件?
  • linux不用命令方式读文件获取网络流量,如何使用C函数调用获取网络流量信息?
  • 怎样使用FTP递归获取文件夹下的所有文件及子文件夹?
  • 如何获取 文件类型?文件更新日期?多谢高手帮忙!
  • 用jspsmartupload上载文件怎样获取文件的名称?
  • 寻找文件夹下.c的文件,然后将同名的.d文件获取到 用shell怎么写
  • python 获取文件列表(或是目录例表)
  • 在shell脚本中,给定一个文件全路径(字符串),如何获取其文件夹?(内详)
  • C如何获取某文件中某一类型文件,且对其排列
  • bat 批处理获取文件路径
  • vm下获取文件的办法
  • android 获取文件的扩展名和去掉文件扩展名的小例子
  • 怎样获取超过4G的Linux Regular文件的大下?
  • 我想在web-inf/classes 下存文件, 怎样获取地址。
  • C# 获取程序集版本、文件版本
  • shell求救:获取一个文件夹下的所有文件,判断其大小
  • 如何获取两个tag之间不同的文件列表
  • 如何获取ftp上文件的大小?
  • Linux下的c++,如何获取一个文件的行数呢?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Python获取网页编码的方法及示例代码
  • 关于获取在jsp上获取客户端时间的问题
  • java Servlet获取和设置cookie实例代码
  • 关于Ganglia中的gmond组件收集到的资源信息如何获取(如何获取telnet后返回的信息)
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 利用sender的Parent获取GridView中的当前行(获取gridview的值)
  • php获取访客ip地址原理及提供七段代码供参考
  • php获取本机ip地址 php获取远程IP地址
  • linux获取主机名后用gethostbyname() 不能获取主机ip
  • javascript 获取url参数的正则表达式(用来获取某个参数值)
  • 在gtk下,怎样获取系统时间??怎样获取当前的目录路径???
  • C++获取文件哈希值(hash)和获取torrent(bt种子)磁力链接哈希值
  • linux根据pid获取进程名和获取进程pid(c语言获取pid)
  • Shell获取系统时间问题
  • android 如何获取MCC/MNC控制小区广播的开启
  • 新手问题:Linux下如何获取进程占用的系统资源
  • c++如何获取当前进程名
  • 怎么通过snmp获取远程主机指定进程信息?
  • C#获取路径的多种方法
  • 怎样获取终端的所有打印消息
  • linux 内核空间如何获取当前时间(常用格式)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3