相信有过Web开发经历的小朋友,对于文件上传都不陌生,但如何在自己的网站上提供文件上传呢?我想一定难到过很多同学,我就是其中的一个,近段时间因为开发的需要,总结了一下Web端文件上传的原理,在这里和大家分享一下。
jsp页面的主要代码:
<body> <h1 id="单文件上传">单文件上传</h1> <hr/> <form action="upload" method="post" enctype="multipart/form-data"> 文件<input type="file" name="img1"/><br/> <input type="submit" value="上传"/> </form> <h1 id="文件重命名">文件重命名</h1> <hr/> <form action="upload2" method="post" enctype="multipart/form-data"> 文件名<input type="text" name="imgname"/><br/> 文件<input type="file" name="img1"/><br/> <input type="submit" value="上传"/> </form> <h1 id="自动生成文件名">自动生成文件名</h1> <hr/> <form action="upload3" method="post" enctype="multipart/form-data"> 文件<input type="file" name="img1"/><br/> <input type="submit" value="上传"/> </form> <h1 id="多文件上传">多文件上传</h1> <hr/> <form action="upload4" method="post" enctype="multipart/form-data"> 文件1<input type="file" name="img1"/><br/> 文件2<input type="file" name="img1"/><br/> 文件3<input type="file" name="img1"/><br/> <input type="submit" value="上传"/> </form> </body>
下面是具体的上传方法介绍
<strong>单文件上传:</strong>
SmartUpload smart = new SmartUpload(); smart.initialize(this.getServletConfig(),request,response); try { smart.upload(); smart.save("images"); } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); }
文件重命名:
SmartUpload smart = new SmartUpload(); smart.initialize(this.getServletConfig(),request,response); try { smart.upload(); String imgname = smart.getRequest().getParameter("imgname"); String absPath = this.getServletContext().getRealPath("/images");//获取文件的保存路径 System.out.println(absPath); String ext = smart.getFiles().getFile(0).getFileExt();//获取文件的后缀名 String fileName = absPath+File.separator+imgname+"."+ext;//生成文件的保存名 System.out.println("File name="+fileName); smart.getFiles().getFile(0).saveAs(fileName); } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); }
<strong>自动生成文件名:</strong>
SmartUpload smart = new SmartUpload(); smart.initialize(this.getServletConfig(),request,response); String disFile = ""; try { smart.upload(); //String imgname = smart.getRequest().getParameter("imgname"); IPTimeStamp ipts = new IPTimeStamp(); String imgname = ipts.getIPTimestamp(); String absPath = this.getServletContext().getRealPath("/images"); System.out.println(absPath); String ext = smart.getFiles().getFile(0).getFileExt(); String fileName = absPath+File.separator+imgname+"."+ext; System.out.println("File name="+fileName); smart.getFiles().getFile(0).saveAs(fileName); disFile = imgname+"."+ext; } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); }
生成随机文件名的代码:
package cn.edu.hpu.util;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Random;public class IPTimeStamp { private String ip; public IPTimeStamp() { } public IPTimeStamp(String ip) { this.ip = ip; } public String getIPTimestamp() { StringBuffer buffer = new StringBuffer(); if(ip != null) { String [] digits = ip.split("\\."); for(String s : digits) { buffer.append(s); } } //时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String time = sdf.format(new Date()); buffer.append(time); Random random = new Random(); for(int i=0; i<4; i++) { buffer.append(random.nextInt(10)); } return buffer.toString(); } public static void main(String[] args) { IPTimeStamp ipts = new IPTimeStamp("192.168.19.121"); System.out.println(ipts.getIPTimestamp()); }}
<strong>多文件上传:</strong>
SmartUpload smart = new SmartUpload(); smart.initialize(this.getServletConfig(),request,response); try { smart.upload(); for(int i=0; i<smart.getFiles().getCount(); i++) { //String imgname = smart.getRequest().getParameter("imgname"); IPTimeStamp ipts = new IPTimeStamp(); String imgname = ipts.getIPTimestamp(); String absPath = this.getServletContext().getRealPath("/images");//文件保存的路径 String ext = smart.getFiles().getFile(i).getFileExt();//获得文件的后缀名 String fileName = absPath+File.separator+imgname+"."+ext;//生成上传文件的保存时的名字 System.out.println("File name="+fileName); smart.getFiles().getFile(i).saveAs(fileName); } } catch (SmartUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); }
相信看到这里,大家一定已经明白如何完成文件上传了。(如有错误还望指正。谢谢)

HTML是一种用于构建网页的语言,通过标签和属性定义网页结构和内容。1)HTML通过标签组织文档结构,如、。2)浏览器解析HTML构建DOM并渲染网页。3)HTML5的新特性如、、增强了多媒体功能。4)常见错误包括标签未闭合和属性值未加引号。5)优化建议包括使用语义化标签和减少文件大小。

WebDevelovermentReliesonHtml,CSS和JavaScript:1)HTMLStructuresContent,2)CSSStyleSIT和3)JavaScriptAddSstractivity,形成thebasisofmodernWebemodernWebExexperiences。

HTML的作用是通过标签和属性定义网页的结构和内容。1.HTML通过到、等标签组织内容,使其易于阅读和理解。2.使用语义化标签如、等增强可访问性和SEO。3.优化HTML代码可以提高网页加载速度和用户体验。

htmlisaspecifictypefodyfocusedonstructuringwebcontent,而“代码” badlyLyCludEslanguagesLikeLikejavascriptandPytyPythonForFunctionality.1)htmldefineswebpagertuctureduseTags.2)“代码”代码“ code” code code code codeSpassSesseseseseseseseAwiderRangeLangeLangeforLageforLogageforLogicIctInterract

HTML、CSS和JavaScript是Web开发的三大支柱。1.HTML定义网页结构,使用标签如、等。2.CSS控制网页样式,使用选择器和属性如color、font-size等。3.JavaScript实现动态效果和交互,通过事件监听和DOM操作。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

Atom编辑器mac版下载
最流行的的开源编辑器