当前位置:首页 » 文件传输 » jsp上传文件
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

jsp上传文件

发布时间: 2022-02-06 14:49:56

A. jsp中如何增加上传文件的功能

首先下载jspsmartupload组件 这个你自己找吧,现在发链接太难了。
二、将目录jspsmartupload/wib_inf/classes中的内容拷贝到网站所在的实际目录中的WEB-INF中(resin是这个目录,其他的可能是classes,具体请查阅jspsmartupload/help/setup.htm)

三、假如是resin运行JSP,请在resin的conf/resin.conf中的
<web-app> 和 </web-app> 中加入:
<path-mapping url-pattern=’/upload/*’ real-path=’f:\\jsp\\jspsmartupload\\upload’/>

四、上传界面的代码如下:(文件名:insert.htm)
<FORM METHOD="POST" ACTION=" uploadfile.jsp" ENCTYPE="multipart/form-data">
<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"> <BR>
<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"> <BR>
<INPUT TYPE="FILE" NAME="FILE3" SIZE="50"> <BR>
<INPUT TYPE="FILE" NAME="FILE4" SIZE="50"> <BR>
主题: <input type="text" name="text1" > <br>
<INPUT type=submit value=写 完 name=ok>
</form>
注重上面的real-path目录

五、uploadfile.jsp的代码如下:
<%@page contentType="text/html;charset=gb2312"
language="java"
import="com.jspsmart.upload.*"%>
<jsp:useBean id="mySmartUpload"
scope="page"
class="com.jspsmart.upload.SmartUpload" />

B. jsp文件上传

public class MultipartTestServlet extends HttpServlet {

public MultipartTestServlet() { //构造方法

super();

}

public void doPost(HttpServletRequest request, HttpServletResponse response) //servlet的doPost方法处理POST请求

throws ServletException, IOException { //抛出异常

request.setCharacterEncoding("gbk"); //设置字符为GBK

RequestContext requestContext = new ServletRequestContext(request); //实例化RequestContext对象

if(FileUpload.isMultipartContent(requestContext)){
//判断是否包含 multipart 内容

DiskFileItemFactory factory = new DiskFileItemFactory();
// 创建基于磁盘的文件工厂
factory.setRepository(new File("c:/tmp/")); // 设置临时目录

ServletFileUpload upload = new ServletFileUpload(factory);

upload.setHeaderEncoding("gbk");

upload.setSizeMax(2000000); //设置缓冲区大小

List items = new ArrayList();

try {

items = upload.parseRequest(request); // 得到所有的文件

} catch (FileUploadException e1) {

System.out.println("文件上传发生错误" + e1.getMessage());

}

Iterator it = items.iterator();

while(it.hasNext()){

FileItem fileItem = (FileItem) it.next();

if(fileItem.isFormField()){

System.out.println(fileItem.getFieldName() + " " + fileItem.getName() + " " + new String(fileItem.getString().getBytes("iso8859-1"), "gbk")); //获得表单中域的名字。获得从浏览器中取得的文件全路径

}else{

System.out.println(fileItem.getFieldName() + " " +

fileItem.getName() + " " +

fileItem.isInMemory() + " " +

fileItem.getContentType() + " " +

fileItem.getSize());

if(fileItem.getName()!=null && fileItem.getSize()!=0){
// 浏览器中取得的文件全路径不为空 大小 不为0 则写入

File fullFile = new File(fileItem.getName());

File newFile = new File("c:/temp/" + fullFile.getName());

try {

fileItem.write(newFile);

} catch (Exception e) {

e.printStackTrace();

}

}else{

System.out.println("文件没有选择 或 文件内容为空");

}

}

}

}

}

}

C. jsp上传文件代码!

其实就是读流的形式。我这有个struts1的,自己研究下。可以批量上传配置文件:#路径请用双\
path=c:\\test\\
#大小为b
fileSize=5000
#文件类型用","隔开
fileType=jpg,txt主要类:// 路径常量
public static final String FILEPATH = "path";
// 文件大小
public static final String FILESIZE = "fileSize";
// 文件类型
public static final String FILETYPE = "fileType"; /**
* @param key:资源文件key值
* @return 返回对应key的value
*/
public static String getValueByKey(String key) {
String rKey = "";
CommonUtil util = new CommonUtil();
// 获取资源文件流
InputStream in = util.getClass().getResourceAsStream(
"/upload.properties"); Properties props = new Properties();
try {
// 加载资源文件
props.load(in);
// 获取资源文件对应key值
rKey = props.get(key).toString();
in.close();
} catch (IOException e) {
e.printStackTrace(); }
return rKey; // 遍历所有key值
// Set set = props.keySet();
// Iterator it = set.iterator();
// System.out.println("Begin ...");
// while(it.hasNext()){
// System.out.println((String)it.next());
// }
// System.out.println("End");
} /**
* 根据系统时间+两位数字随机数产生文件名
*
* @return 例:2010091521202315
*/
public static String getFileName() {
// 格式化日期
SimpleDateFormat s = new SimpleDateFormat("yyyyMMddHHmmss");
String fileName = s.format(new Date());
// 随机数
Random r = new Random();
int random = 0;
do {
random = r.nextInt(100);
} while (random < 10);
// 连接字符串
fileName += random;
return fileName;
} /**
* 上传文件集合
*
* @param files:FormFile的集合
* @param code:数据字典模块路径id
* @param fileName:文件真实名称
* @return 上传后的文件id数组
*/
public static String[] filesUpload(List files, int code, String[] fileName)
throws IOException, Exception {
// 输出文件名
for (int i = 0; i < fileName.length; i++) {
System.out.println("文件" + (i + 1) + "名字:" + fileName[i]);
}
// 获取资源文件上传路径
String path = CommonUtil.getValueByKey(CommonUtil.FILEPATH);
System.out.println("资源文件路径:" + path);
// 获取大小文件上限
long fileSize = Long.parseLong(CommonUtil
.getValueByKey(CommonUtil.FILESIZE));
System.out.println("文件上限大小:" + fileSize + "b");
// 获取文件类型
String types = CommonUtil.getValueByKey(CommonUtil.FILETYPE).toString();
System.out.println("限制文件类型:" + types);
// 数组转为集合
List fileTypes = Arrays.asList(types.split(",")); // 首先遍历文件集合判断是否合法
for (Iterator iterator = files.iterator(); iterator.hasNext();) {
// 单个文件
FormFile file = (FormFile) iterator.next();
// 文件类型
String ext = file.getFileName().substring(
file.getFileName().lastIndexOf(".") + 1,
file.getFileName().length());
// 遍历文件类型集合进行判断
if (!fileTypes.contains(ext)) {
throw new Exception("不允许上传" + ext + "类型文件");
}
if (fileSize < file.getFileSize()) {
throw new Exception("上传的文件过大");
}
}

for (Iterator iterator = files.iterator(); iterator.hasNext();) {
// 单个文件
FormFile file = (FormFile) iterator.next(); /*
* 。。。。。。。。。。。。。。。实际上传路径
*/
// 根据实际上传路径新建文件夹
new File(path).mkdirs();
// 文件输出路径
String savePath = path + getFileName() + ".jpg";
System.out.println("文件输出路径" + savePath);
if (file.getFileSize() > 10) {
// 输入流
InputStream input = file.getInputStream();
byte[] b = new byte[1024];
// 输出流
FileOutputStream fileoutput = new FileOutputStream(savePath);
// 开始输出
while (input.read(b) != -1) {
fileoutput.write(b);
}
fileoutput.close();
input.close();
// 文件上传结束
}
}
/*
* 。。。。。。。。。。。。。。获取上传后的文件名
*/
return null;
}

D. JSP 前端大文件上传如何实现

jsp跟html一样的,上传文件三个要求
第一:post请求
第二:格式为file
第三:提交方式

E. 怎么在 jsp 页面中上传文件

使用jsp smartupload
示例:部分文件代码 具体实现 找些教材

UploadServlet.java

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.jspsmart.upload.*;
import java.text.*;
import java.util.*;

/*******************************************************/
/* 该实例中尽可能多地用到了一些方法,在实际应用中 */
/* 我们可以根据自己的需要进行取舍! */
/*******************************************************/

public class UploadServlet extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

// 新建一个SmartUpload对象,此项是必须的
SmartUpload myupload = new SmartUpload();
// 初始化,此项是必须的
ServletConfig config = getServletConfig();
myupload.initialize(config,request,response);

response.setContentType("text/html");
response.setCharacterEncoding("gb2312");
PrintWriter out = response.getWriter();
out.println("<h2>处理上传的文件</h2>");
out.println("<hr>");

try{
// 限制每个上传文件的最大长度
myupload.setMaxFileSize(1024*1024);
// 限制总上传数据的长度
myupload.setTotalMaxFileSize(5*1024*1024);
// 设定允许上传的文件(通过扩展名限制)
myupload.setAllowedFilesList("doc,txt,jpg,gif");
// 设定禁止上传的文件(通过扩展名限制)
myupload.setDeniedFilesList("exe,bat,jsp,htm,html,,");
// 上传文件,此项是必须的
myupload.upload();
// 统计上传文件的总数
int count = myupload.getFiles().getCount();
// 取得Request对象
Request myRequest = myupload.getRequest();
String rndFilename,fileExtName,fileName,filePathName,memo;
Date dt = null;
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmssSSS");

// 逐一提取上传文件信息,同时可保存文件
for (int i=0;i<count;i++)
{
//取得一个上传文件
File file = myupload.getFiles().getFile(i);
// 若文件不存在则继续
if (file.isMissing()) continue;
// 取得文件名
fileName = file.getFileName();
// 取得文件全名
filePathName = file.getFilePathName();
// 取得文件扩展名
fileExtName = file.getFileExt();
// 取得随机文件名
dt = new Date(System.currentTimeMillis());
Thread.sleep(100);
rndFilename= fmt.format(dt)+"."+fileExtName;
memo = myRequest.getParameter("memo"+i);

// 显示当前文件信息
out.println("第"+(i+1)+"个文件的文件信息:<br>");
out.println(" 文件名为:"+fileName+"<br>");
out.println(" 文件扩展名为:"+fileExtName+"<br>");
out.println(" 文件全名为:"+filePathName+"<br>");
out.println(" 文件大小为:"+file.getSize()+"字节<br>");
out.println(" 文件备注为:"+memo+"<br>");
out.println(" 文件随机文件名为:"+rndFilename+"<br><br>");

// 将文件另存,以WEB应用的根目录作为上传文件的根目录
file.saveAs("/upload/" + rndFilename,myupload.SAVE_VIRTUAL);
}
out.println(count+"个文件上传成功!<br>");
}catch(Exception ex){
out.println("上传文件超过了限制条件,上传失败!<br>");
out.println("错误原因:<br>"+ex.toString());
}
out.flush();
out.close();
}

}

F. 怎么在jsp页面实现文件上传呢

上传文件示例:
<form action="doUpload.jsp" method="post" enctype="multipart/form-data">
<%-- 类型enctype用multipart/form-data,这样可以把文件中的数据作为流式数据上传,不管是什么文件类型,均可上传。--%>
请选择要上传的文件<input type="file" name="upfile" size="50">
<input type="submit" value="提交">
</form>
</body>
</html>

G. 用jsp 怎样实现文件上传

你下载一个jspsmart组件,网上很容易下到,用法如下,这是我程序的相关片断,供你参考: <%@ page import="com.jspsmart.upload.*" %>
<jsp:useBean id="mySmartUpload" scope="page" class="com.jspsmart.upload.SmartUpload" />
<%
String photoname="photoname";

// Variables
int count=0; // Initialization
mySmartUpload.initialize(pageContext); // Upload
mySmartUpload.upload();

for (int i=0;i<mySmartUpload.getFiles().getCount();i++){ // Retreive the current file
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(i); // Save it only if this file exists
if (!myFile.isMissing()) {
java.util.Date thedate=new java.util.Date();
java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
photoname = df.format(thedate);
photoname +="."+ myFile.getFileExt();
myFile.saveAs("/docs/docimg/" + photoname);
count ++; } }
%>
<% String title="1";
String author="1";
String content="1";
String pdatetime="1";
String topic="1";
String imgintro="1";
String clkcount="1"; if(mySmartUpload.getRequest().getParameter("title")!=null){
title=(String)mySmartUpload.getRequest().getParameter("title");
title=new String(title.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("author")!=null){
author=(String)mySmartUpload.getRequest().getParameter("author");
author=new String(author.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("content")!=null){
content=(String)mySmartUpload.getRequest().getParameter("content");
content=new String(content.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("pdatetime")!=null){
pdatetime=(String)mySmartUpload.getRequest().getParameter("pdatetime");
}
if(mySmartUpload.getRequest().getParameter("topic")!=null){
topic=(String)mySmartUpload.getRequest().getParameter("topic");
}
if(mySmartUpload.getRequest().getParameter("imgintro")!=null){
imgintro=(String)mySmartUpload.getRequest().getParameter("imgintro");
imgintro=new String(imgintro.getBytes("gbk"),"ISO-8859-1");
}
if(mySmartUpload.getRequest().getParameter("clkcount")!=null){
clkcount=(String)mySmartUpload.getRequest().getParameter("clkcount");
}
//out.println(code+name+birthday);
%>

H. jsp页面中如何视频文件上传的代码实现

jsp 获取视频文件进行播放 跟html没什么区别 可以调用不同播放器的代码 ,比如MEDIA播放器:
<OBJECT ID="mediaplayer" WIDTH="50%" HEIGHT="50%" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<!--播放的文件的地址-->
<param name="url" value="http://www..com"/>
<!--去除右键菜单-->
<param name="enableContextMenu" value="false"/>
<param name="autoStart" value="true" />
</OBJECT>

I. jsp如何上传文件

只是jsp部分的话,只要在form标签里加一个“enctype="multipart/form-data"”就好了,读取下载的话只要弄个commons-fileupload之类的插件就很容易解决
这里是下载部分的核心代码:
<%@ page contentType="text/html;charset=gb2312" import="com.jspsmart.upload.*" %>
<%
String sUrl = (String)request.getAttribute("fileurl");
SmartUpload su = new SmartUpload();
su.initialize(pageContext);
//设定contentDisposition为null以禁止浏览器自动打开文件,保证点击链接后是下载文件。若不设定,则下载的文件扩展名为doc时,浏览器将自动用word打开它;扩展名为pdf时,浏览器将用acrobat打开。
su.setContentDisposition(null);
su.downloadFile(sUrl);
%>
但是归根结底,你还是要一个存放文件路径的数据库啊,否则你下载时候下载地址每次都写死或者手动输入??如果要动态读取的话还是要建一个存放文件路径的数据库的

J. jsp上传一个文件夹下的所有文件

jsp上传一个文件夹下的所有文件:

1、上传的upload.jsp:

<%@pagelanguage="java"contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDHTML4.01Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
<title>FileUpload</title>
</head>
<body>
<formmethod="post"action="UploadServlet"enctype="multipart/form-data">
Selectfiletoupload:
<inputtype="file"name="dataFile"id="fileChooser"/><br/><br/>
<inputtype="submit"value="Upload"/>
</form>
</body>
</html>


2、后台servlet:

{
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
booleanisMultipart=ServletFileUpload.isMultipartContent(request);

if(isMultipart){
//Createafactoryfordisk-basedfileitems
FileItemFactoryfactory=newDiskFileItemFactory();

//Createanewfileuploadhandler
ServletFileUploapload=newServletFileUpload(factory);

try{
//Parsetherequest
Listitems=upload.parseRequest(request);
Iteratoriterator=items.iterator();
while(iterator.hasNext()){
FileItemitem=(FileItem)iterator.next();
if(!item.isFormField()){
StringfileName=item.getName();
Stringroot=getServletContext().getRealPath("/");
Filepath=newFile(root+"/uploads");
if(!path.exists()){
booleanstatus=path.mkdirs();
}

FileuploadedFile=newFile(path+"/"+fileName);
System.out.println(uploadedFile.getAbsolutePath());
item.write(uploadedFile);
}
}
}catch(FileUploadExceptione){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}
}
}