servlet jsp 前台与后台的同时传文件和文本
2016-12-17 18:12
260 查看
初学 后台,关于前端往端传递图片和文本踩了个大坑,整理下来纪念一下。
一般处理这种问题,可以选择无插件,但太过麻烦,然后可以从用插件。
例如 FileUpload组件 代码展示
PrinWriter(writer,true);//写入
一般处理这种问题,可以选择无插件,但太过麻烦,然后可以从用插件。
例如 FileUpload组件 代码展示
List<FileItem> list = null; String uploadpath=""; //判断提交过来的表单是否为文件上传菜单 boolean isMultipart= ServletFileUpload.isMultipartContent(request); if(isMultipart){ //构造一个文件上传处理对象 DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); int max=1024*1024*100; // upload.setHeaderEncoding("utf-8"); //获取集合 try { list = upload.parseRequest(request); } catch (FileUploadException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //创建迭代器 Iterator<FileItem> iterator = list.iterator(); File uploadfile=new File(request.getSession().getServletContext().getRealPath("/")+"upload"); uploadpath = uploadfile.getAbsolutePath()+File.separator+uploadpath; if(uploadfile.exists()==false){ uploadfile.mkdir(); } while(iterator.hasNext()){ FileItem item=iterator.next(); //如果是普通表单 if(item.isFormField()) { System.out.println(item.getFieldName()); String name = item.getFieldName(); //得到名称 String value = item.getString( "UTF-8"); //得到对应的值 System.out.println("name is :"+name+"value is"+value); } else if(!item.isFormField()) { String filepath=item.getName(); if(filepath!=null) { File filename=new File(item.getFieldName()); } if(item.getSize()>max){ System.out.println("文件过大,上传失败"); break; } File savefile=new File(uploadpath,filepath); try {
//写到savefile中 ,保存文件 item.write(savefile); System.out.println("上传成功"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }//end while }然后 里面有很多 new File(),关于file 不仅只代表存在的文件和目录并且也可以new 一个新的file对象,
public static void main(String[] args) throws Exception{ //构造函数File(String pathname) File f1 =new File("D:\\1abc\\3.txt"); if(!f1.exists()){ f1.createNewFile(); } FileOutputStream out=new FileOutputStream(f1); byte[] a="we have to sucess".getBytes(); out.write(a); //File(String parent,String child) File f2 =new File("c:\\abc","2.txt"); //File(File parent,String child) File f3 =new File("c:"+File.separator+"abc");//separator 跨平台分隔符 File f4 =new File(f3,"3.txt"); System.out.println(f1);//c:\abc\1.txt }
/*获取文件名*/ String name=file.getName() ; /*获取文件路径*/ String path_=file.getPath(); /*获取绝对路径名*/ String absPath=file.getAbsolutePath(); /*获取父亲文件路径*/ String parent=file.getParent(); /*文件大小*/ long size=file.length();
PrinWriter(writer,true);//写入
相关文章推荐
- 使用IDropTarget接口同时支持文本和文件拖放(二)
- 解决:上传文件按钮样式,fileupload 样式,同时解决后台得不到上传文件的信息问题
- SmartUpload实现文件上传时file和表单文本同时提交的问题
- 怎么在一个表单里面同时上传文件和文本信息??
- PHP在后台启动Microsoft Word、打开一个新文件、键入一些文本、保存该文件然后关闭应用程序
- ios开发视频播放后台下载功能实现 :1,ios播放视频 ,包含基于AVPlayer播放器,2,实现下载,iOS后台下载(多任务同时下载,单任务下载,下载进度,下载百分比,文件大小,下载状态)(真机调试功能正常)
- WebClient 实现多文件/文本同时上传
- 使用IDropTarget接口同时支持文本和文件拖放
- 从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序
- 使用IDropTarget接口同时支持文本和文件拖放
- 用FormData处理form表单中同时有文件和普通文本的提交的处理方式
- Android中利用volley同时上传文件和文本参数
- [VC]使用IDropTarget接口同时支持文本和文件拖放(1)(zt)
- Java 夹杂文本字段的文件上传 后台实现(包括前端jquery实现的备忘)
- 同时实现文件上传input type =file和文本input type=text
- 关于使用jsp实现文本和file文件同时长传的问题
- pads布局布线技巧(【PCB文件中显示引脚号】 【敷铜】 【显示网络名】 【高亮网络】 【修改PCB中文本的尺寸】 【同时修改多个文本(对象)的尺寸(属性) 让集中在一起的元件散开)
- Jquery Ajax 同时传递文本和文件的方法
- 使用IDropTarget接口同时支持文本和文件拖放
- 使用IDropTarget接口同时支持文本和文件拖放(一)