當前位置:首頁 » 文件傳輸 » 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();
}
}
}
}