導航:首頁 > 版本升級 > tomcat文件上傳

tomcat文件上傳

發布時間:2023-07-17 07:19:47

A. 高分求助,java TOMCAT實現文件上傳下載

回答:
1.上傳文件的頁面,form中必須加入enctype="multipart/form-data" 屬性. 提交後用request.getInputStream()獲得所有的數據。 註:回request中所有的數據及相應的值都會答從這里獲得,自己可以把這個輸出流裡面的東東全部輸出出來看看是什麼,對剛接觸這部分的人員很有幫助。 另一方面,也說明自己用jsp寫個上傳文件的功能挺費事的,一般的公司用到上傳文件的功能時,都是用網上一些公布第三方jar包,很方便的。
2.把request.getInputStream() 獲得的輸出流,轉化一下,變成輸出流,就可以存到你想存的地方了,這部分需要IO部分的知識。
3. 在第二點保存文件時,你會有一個file對象,根據這個對象的一些方法會獲得你想要的數據,如文件名是getName() , 絕對路徑是getAbsolutePath() 。建議把所有get方法自己列印出來體驗一下。
4.最簡單的下載方式就是用a標簽,其中的href屬性指向到你的文件。當然,還有其它高級用法,如果需要再聯系我。

B. 問一下如何上傳文件到tomcat的webapps文件夾中

首先 你的明白 文件上傳的原理
jsp 頁面 通過表單 屬性設置input type=file 是告訴伺服器 這里 請求的是個文件
伺服器 通過二進制 讀取文件 然後 在寫文件

所以你設定好寫文件的路徑 不就可以了么
其次 我想你的工程 應該是部署在webapps下吧 一般 文件上傳都是存放在工程相應目錄下的

C. 怎麼向tomcat伺服器上傳文件

1.將tomcat環境搭配好

path中加入:

%CATALINA_HOME%\lib;%CATALINA_HOME%\bin;

2.修改tomcat中config/server.xml

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->

<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" resolveHosts="false"/>
<Context docBase="D:\workspace\picture\target\mvc-basic.war" path="/picture"/>

</Host>

添加紅色部分

docBase中要為項目打包成的war文件。

path隨意

啟動tomcat bin\startup.bat,如果這時tomcat一閃而過,表示啟動異常,很可能是配置或者server.xml出問題了。

注意:有時即使更改了war文件裡面的文件,程序仍然沒有任何變化,這個時候要把apache-tomcat-7.0.11\webapps下的項目文件給刪除,再重新啟動tomcat。

由於我是用eclipse開發的,下面那段紅色線表示我發布的位置,wtpwebapps下,我試過,只有把圖片放在D:\workspace
\.metadata\.plugins\org.eclipse.wst.server.core\tmp4\wtpwebapps\ROOT裡面項目
才能讀取到圖片。而如果將項目打包成war後,更改<Context docBase="D:\workspace\picture\target\mvc-basic.war" path="/picture"/>更tomcat的根目錄是apache-tomcat-7.0.11\webapps,只需要在這個下面建立images目錄,把圖片往裡面存就行了。

3.代碼

[java] view plain
private static final String PICTURE_WEB_INF = "/picture/WEB-INF";
private static final String ROOT_IMAGES_PICTURE = "/ROOT/images/picture";
private static final String IMAGES_PICTURE = "/images/picture";

@RequestMapping(value = "/add",method = RequestMethod.POST)
public String save(Picture picture, HttpServletRequest request) {
this.FileAndSaveFile(request, picture);
this.pictureService.save(picture);
return "redirect:/index";
}

private void FileAndSaveFile(HttpServletRequest request, Picture material) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
for (Map.Entry<String, MultipartFile> entity : multipartRequest.getFileMap().entrySet()) {
MultipartFile mf = entity.getValue();
String uuid = UUID.randomUUID().toString();
String classPath = this.getClass().getClassLoader().getResource("/").getPath();
try {
classPath =URLDecoder.decode(classPath, "gb2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
classPath = classPath.split(PICTURE_WEB_INF)[0];
File pictureFile = new File(classPath+ROOT_IMAGES_PICTURE);
if(!pictureFile.exists()){
pictureFile.mkdirs();
}

String path = pictureFile.getPath();
String ext = null;
try {
if (null == mf || mf.isEmpty() || null == mf.getInputStream() || mf.getSize() > 40000000) {
return;
}
ext = Files.getFileExtension(mf.getOriginalFilename());
if(classPath.indexOf("wtpwebapps")!=-1){
path = classPath+ROOT_IMAGES_PICTURE;
}else{
path = classPath+IMAGES_PICTURE;
}
File f = new File(path +"/" + uuid + "." + ext);
Files.createParentDirs(f);
FileCopyUtils.(mf.getBytes(), f);
material.setFilePath(IMAGES_PICTURE + "/" + uuid + "." + ext);
material.setFileName(mf.getOriginalFilename());
} catch (IOException e) {
e.printStackTrace();
}
}
}

因為使用eclipse開發的,所以會是indexof(wtpwebapps),其他的開發工具要看情況。

jsp:

另外img src好像不支持用絕對路徑,顯示不出來,我也不知道為什麼,網路了很多都沒說,但是絕對路徑應該是不可行的,因為有時需要移植什麼的容易出現問題。

[html] view plain
<head>
<title>圖片列表</title>
<script language="javascript" src="./resources/js/jquery-1.8.3.js"> </script>
<script language="javascript" src="./resources/js/jquery.validate.min.js"> </script>
<script language="javascript" src="./resources/js/picture/add.js"> </script>
</head>
<body>
<form action = "<c:url value = "/picture/add"></c:url>" method = "post" id="add_form" enctype="multipart/form-data">
<table class="tab01">
<tr>
<td class="name">名稱:</td>
<td><input id = "name" type="text" class="text_input" name="title" placeholder="標題"/></td>
<td><label for="title" class="error" generated="true" style="color:red;font-size:12px;"></label></td>
</tr>
<tr>
<td class="name">上傳圖片:</td>
<td><input type="file" class="text_input" name="file" id="file" placeholder="上傳圖片"/></td>
<td><label for="file" class="error" generated="true" style="color:red;font-size:12px;"></label></td>
</tr>
<tr>
<td> </td>
<td colspan="2">
<input type="submit" class="button" id="submitButton" value="提交" name="reset" />
<input type="reset" class="button" value="重置" name="reset" />
</td>
</tr>
</table>
</form>
<br/><br/><br/>
<c:forEach items = "${pictureList }" var = "picture">
<p>${picture.title }</p>
<div><img src="${picture.filePath }" width = "500" height = "500" BORDER="0" ALT="無圖片"/>
</div>
</c:forEach>
</body>

[javascript] view plain
$(function(){
jQuery.validator.messages.required = "<span class='error' generated='true' style='color: red; font-size: 12px;'>*請填寫此內容</span>";
jQuery.validator.messages.maxlength = "<span class='error' generated='true' style='color: red; font-size: 12px;'>*已達到最大字元數 </span>";
jQuery.validator.messages.accept = "<span class='error' generated='true' style='color: red; font-size: 12px;'>*請輸入擁有合法後綴名的字元串 </span>";

$("#add_form").validate({

rules : {
title : {required : true, maxlength :200 },
file : {required : true}
}
});
$("input[type='file']").change(function(){
alert(this.files[0].size);
if(this.files[0].size>300*1024){
alert("圖片太大!!圖片不大於300KB");
$("#submitButton").attr("disabled","disabled");
}else{
$("#submitButton").removeAttr("disabled");
}
});

$("#add_form").submit(function() {
var filepath=$("input[name='file']").val();
var extStart=filepath.lastIndexOf(".");
var ext=filepath.substring(extStart,filepath.length).toUpperCase();
if(ext!=".BMP"&&ext!=".PNG"&&ext!=".GIF"&&ext!=".JPG"&&ext!=".JPEG"){
alert("圖片限於bmp,png,gif,jpeg,jpg格式");
return false;
}
return true;
});
});

D. tomcat上傳的保存文件路徑

在Servlet中,指定伺服器上某個文件夾來保存文件:

//獲得伺服器應用程序所在的絕對路徑
StringrealPath=this.getServletContext().getRealPath(this.getServletName());
realPath=realPath.substring(0,realPath.lastIndexOf("\"));
StringuploadPath=realPath+"\upload\";//用於存放上傳文件的伺服器目錄絕對路徑

E. tomcat上傳文件問題

第一步:需要先創建一個server,可以通過windows中的show view,之後找到server,

第二步:在server窗口中右擊,選擇」new-server「,之後創建好tomcat server。

第三步:雙擊創建的server,進入server設置界面,設置Server Location,選擇編譯路徑是」Use Tomcat「即可切換到Tomcat的路徑,保存。

第四步:之後將server項目添加到此server下,這樣就完成了部署到Tomcat下。

F. tomcat上傳比遠程桌面復制慢

因為文件容量過大。
tomcat運行正常,上傳數據很緩慢,或者數據丟失。檢查網路正常,檢查資料庫正常,也不卡頓,就是上傳數據到資料庫的時候很卡頓。如果是上述情況,既不是網路也不是資料庫出現問題,建議壓縮文件,或者選擇遠程桌面復制上傳。

G. 怎麼把文件上傳到tomcat伺服器

一,將項目導出成WAR包,而後將該包直接復制到tomcat的webapp目錄下,這樣就可以訪問了 二,配置tomcat 修改${tomcat.home}\conf\server.xml文件.在Host節點下增加如下參考代碼: docBase:指向項目的根目錄所在的路徑, 由於將項目打成了war包,所

H. tomcat中如何設置文件上傳大小的控制,例如:超過Tomcat限定的50M , 而本人需要上傳90M的WAR文件。

1、打開tomcat的默認配置文件(tomcat程序安裝目錄下的conf文件夾中的server.xml文件)。
2、找到裡面的<Connector>標簽,在該標簽中添加"maxPostSize"屬性,將該屬性值設置成你想要的最大值,單位是位元組,或者把這個值設置為 0(maxPostSize="0"),tomcat將不再檢查文件的大小。即可解決上述問題。

閱讀全文

與tomcat文件上傳相關的資料

熱點內容
javafrom提交地址參數 瀏覽:721
git發布版本 瀏覽:728
vc修改文件名 瀏覽:149
linux65從域 瀏覽:321
用什麼東西壓縮文件 瀏覽:406
怎麼刪除ipad隱藏的APP 瀏覽:981
編程如何佔用大量內存 瀏覽:116
多個excel表格文件如何組合 瀏覽:918
ubuntu內核升級命令 瀏覽:679
pgp文件夾 瀏覽:894
一鍵還原的文件是什麼格式 瀏覽:581
女漢子微信名霸氣十足 瀏覽:65
win10手機藍屏修復 瀏覽:419
windows2008激活工具 瀏覽:259
g71的編程應注意什麼 瀏覽:572
文件路徑不符合是什麼意思 瀏覽:543
qq如何換綁微信綁定 瀏覽:67
文件包下載的安裝包在哪裡 瀏覽:811
90版本升級不送 瀏覽:186
工具箱英文 瀏覽:382

友情鏈接