當前位置:首頁 » 文件管理 » 上傳文件到tomcat伺服器

上傳文件到tomcat伺服器

發布時間: 2023-04-02 05:03:45

A. 畢設:用java web編寫的本地文件上傳到tomcate伺服器最後提示上傳成功但是在相應的目錄下找不到上傳的文件

有兩種可能:
一、你的程序顯示成功,但是只是個輸出顯示成功的語句,而實際上並沒有上傳文件;
二、文件確實上傳成功了。但是你找的文件夾的路徑不對。這種問題你可以這樣驗證:在tomcat所在的路徑下,用電腦的文件搜索搜一下你上傳的文件名,看能不能搜到。能搜到就說明是你找錯位置了。搜不到就是真的沒有上傳成功。

B. 如何保存文件到伺服器的tomcat目錄下

一般情況下,不直接把文件保存到伺服器上,如果確保你的程序文件沒有bug,才能上傳到伺服器上。伺服器上直接保存迅旦的話,需要先在伺服器上開通ftp服務,伍畢並設置不允許匿名訪問,每個用戶有自己的用戶名和密碼去訪問,在開發工具中選擇保存路徑的時候,選擇網路上就可以了。

如果是要上傳文件到伺服器,可以做一個上傳的工具,在本機上瀏覽選擇文件,然後上畝橘擾傳,需要做好許可權的限制。

C. Android打開系統相冊返回一張圖片,如何將返回的圖片上傳到Tomcat伺服器中

文件上傳需要用到HttpClient,打開系統相冊需要通過內容提供者調用android相冊或者文件管理器(源代碼查看附件)關於HttpClient的文件上傳HttpClient相比傳統JDK自帶的URLConnection,增加了易用性和靈活性(具體區別,日後我們再討論),它不僅是客戶端發送Http請求變得容易,而且也方便了開發人員測試介面(基於Http協議的),即提高了開發的效率,也方便提高代碼的健壯性。因此熟練掌握HttpClient是很重要的必修內容,掌握HttpClient後,相信對於Http協議的了解會更加深入。

一、HttpClient是Apache Jakarta Common下的子項目,用來提供高效的、最新的、功能豐富的支持HTTP協議的客戶端編程工具包,並且它支持HTTP協議最新的版本和建議。HttpClient已經應用在很多的項目中,比如Apache Jakarta上很著名的另外兩個開源項目Cactus和HTMLUnit都使用了HttpClient。

二、特性

1. 基於標准、純凈的java語言。實現了Http1.0和Http1.1

2. 以可擴展的面向對象的結構實現了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。

3. 支持HTTPS協議。

4. 通過Http代理建立透明的連接。

5. 利用CONNECT方法通過Http代理建立隧道的https連接。

6. Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos認證方案。

7. 插件式的自定義認證方案。

8. 便攜可靠的套接字工廠使它更容易的使用第三方解決方案。

9. 連接管理器支持多線程應用。支持設置最大連接數,同時支持設置每個主機的最大連接數,發現並關閉過期的連接。

10. 自動處理Set-Cookie中的Cookie。

11. 插件式的自定義Cookie策略。

12. Request的輸出流可以避免流中內容直接緩沖到socket伺服器。

13. Response的輸入流可以有效的從socket伺服器直接讀取相應內容。

14. 在http1.0和http1.1中利用KeepAlive保持持久連接。

15. 直接獲取伺服器發送的response code和 headers。

16. 設置連接超時的能力。

17. 實驗性的支持http1.1 response caching。

18. 源代碼基於Apache License 可免費獲取。


三、使用方法

使用HttpClient發送請求、接收響應很簡單,一般需要如下幾步即可。

1.創建HttpClient對象。

2.創建請求方法的實例,並指定請求URL。如果需要發送GET請求,創建HttpGet對象;如果需要發送POST請求,創建HttpPost對象。

3.如果需要發送請求參數,可調用HttpGet、HttpPost共同的setParams(HetpParams params)方法來添加請求參數;對於HttpPost對象而言,也可調用setEntity(HttpEntity entity)方法來設置請求參數。

4.調用HttpClient對象的execute(HttpUriRequest request)發送請求,該方法返回一個HttpResponse。

5.調用HttpResponse的getAllHeaders()、getHeaders(String name)等方法可獲取伺服器的響應頭;調用HttpResponse的getEntity()方法可獲取HttpEntity對象,該對象包裝了伺服器的響應內容。程序可通過該對象獲取伺服器的響應內容。

6.釋放連接。無論執行方法是否成功,都必須釋放連接

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

沒必要上傳的(要上傳的話,可以先找到編譯路徑,之後直接復制進去),直接編譯到此路徑下即可。

第一步:在server運行的窗口,雙擊要編譯的server路徑名稱。

第二步:設置「Server location」中的第二個「Use Tomcat...」,之後選擇「browse」,之後直接定位到「webapps」路徑下即可,

第三步:之後將要編譯的項目直接添加到此server下,即可完成自動編譯;

E. 如何上傳html網頁至tomcat伺服器

1、直接把html 代碼放到tomcat的webapps文件夾下;
2、直接啟動tomcat;
3、在瀏廳腔覽器扮檔衫端輸入http://localhost:9080/你的項目名稱蠢消;

F. java文件上傳到tomcat伺服器

你好:你的是保存包eclipse的默認路徑下了,如果你想上傳文件的話,必須制定resource的存儲路徑,可以是相對的,也可以是絕對的!

G. 圖片怎麼上傳到tomcat伺服器,tomcat伺服器如何構建

你可以在系統裡面做一個上傳的功能,然後就能把圖片上傳到tomcat伺服器了啊。
tomcat伺服器不用構建。直接下載下來就能用。

H. 為什麼上傳到tomcat伺服器upload文件過一會兒會消失,連創建的文件夾結構也消失了,急求大神解決

先說解決辦法吧,後面在分析:
1.把/tomcat/webapps/目錄清空,刪掉該文件夾的所有內容,
2.修改/tomcat/conf/web.xml文件:
<servlet><servlet-name>default</servlet-name><servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param>仿鎮<param-name>listings<咐慎/param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet

3.修改/tomcat/conf/server.xml文件:
<Host name="localhost" appBase="webapps"衡大敬unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><!-- 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 --><!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/> --><!----><Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context><!--<Context path="/mvc" docBase="D:\project\myProject\你的項目名\WebRoot"></Context>--></Host>

分析:
重新redeploy的時候, tomcat 會同步你本地的文件 ,因為本地沒有相應的文件夾導致文件丟失。
這只是在開發過程中會遇到的問題 實際應用中 tomcat 只會 startup.bat/sh shutdown.bat/sh
我們這樣做,其實就是給工程配置虛擬路徑,這樣tomcat在啟動的時候直接找到工程了,
上傳的圖片就不會僅僅只在/tomcat/webapps/目錄,而直接到了你的工程里,
不管你怎樣重啟項目,或者清理緩存,上傳的文件依然存在!

I. 怎麼向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;
});
});

J. android開發:怎樣實現上傳文件到Tomcat伺服器上,求可執行的代碼,越簡潔越好

伺服器端寫個servlet,然後在doPost()方法里處理客戶端上傳的文件,大概代碼:

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 1024); // 設置最多隻允許在內存中存儲的數據, 單位:位元組
factory.setRepository(cachepath); // 設置一旦文件大小超過設定值時數據存放的目錄

ServletFileUpload srvFileUpload = new ServletFileUpload(factory);
srvFileUpload.setSizeMax(1024 * 1024 * 1024); // 設置允許用戶上傳文件大小, 單位:位元組

// 開始讀取上傳信息
List fileItems = null;
try {
fileItems = srvFileUpload.parseRequest(request);
} catch (Exception e) {
System.out.println("獲取上傳信息。。。。。。失敗");
}

// 依次處理每個上傳的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next(); // 忽略其他不是文件域的所有表單信息
if (!item.isFormField()) {
// 取出文件域的所有表單信息
} else {
// 取出不是文件域的所有表單信息
}
}

熱點內容
哇哇賺錢腳本 發布:2024-03-29 20:23:53 瀏覽:996
兩氣體壓縮 發布:2024-03-29 20:18:09 瀏覽:993
易語言教程解壓 發布:2024-03-29 20:18:00 瀏覽:785
我老爸的密碼是什麼 發布:2024-03-29 20:03:50 瀏覽:247
資料庫定義實驗 發布:2024-03-29 19:52:20 瀏覽:578
如何除去安卓手機的馬賽克 發布:2024-03-29 19:52:16 瀏覽:584
網站緩存設置 發布:2024-03-29 19:47:20 瀏覽:798
在jsp中使用資料庫 發布:2024-03-29 19:29:01 瀏覽:786
dns伺服器江川區ip地址 發布:2024-03-29 18:47:53 瀏覽:328
sql統計百分比 發布:2024-03-29 18:47:14 瀏覽:692