日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

解决Java Web对Linux服务器不能上传文件的难题

發(fā)布時間:2025/4/14 linux 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决Java Web对Linux服务器不能上传文件的难题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一 Java Web文件上傳程序

? ? 頁面中用html或某個js框架,彈出選擇上傳文件界面,用戶選擇文件后上傳;傳到服務器上調用servlet進行處理,把接受到的內容寫入服務器相應目錄。Java Web上傳都是這個思路,網上有很多例子,就不再多說了。

? ? 本項目的servlet主體代碼如下: ? ? ? ? ? ? ? ?

//上傳文件實際保存路徑uploadPath=request.getSession().getServletContext().getRealPath("/dddd");//uploadPath="/var/lib/tomcat6/webapps/xxxx/dddd/";if (ServletFileUpload.isMultipartContent(request)) {try {DiskFileItemFactory factory = new DiskFileItemFactory();factory.setSizeThreshold(1024);factory.setRepository(new File(repositoryPath));//設置臨時目錄ServletFileUpload upload = new ServletFileUpload(factory);upload.setHeaderEncoding("UTF-8");upload.setSizeMax(1024 * 1024 * 1024);//設置文件大小List<FileItem> items = upload.parseRequest(request);for (FileItem item : items) {if (!item.isFormField()) {// 如果是文件類型name = item.getName();// 獲得文件名if (name != null) {File savedFile = new File(uploadPath, name);item.write(savedFile);}} }response.getWriter().write("{\"status\":true,\"newName\":\""+name+"\"}");} catch (FileUploadException e) {e.printStackTrace(); response.getWriter().write("{\"status\":false}");} catch (Exception e) {e.printStackTrace();}

如果服務器為Windows,一切正常;服務器為Linux則上傳失敗;

初認為是路徑問題,因為Windows和Linux的路徑寫法不同;不過對于Linux,下面兩種寫法,一種是從上下文獲取路徑,一種直接寫絕對路徑,都不能上傳;

uploadPath=request.getSession().getServletContext().getRealPath("/dddd");//uploadPath="/var/lib/tomcat6/webapps/xxxx/dddd/";

二 用js調試控制臺,在chrome下打F12,調出js調試控制臺,找到要調試的js或jsp,切到sources選項卡,在源代碼中下斷點,在這里下斷點調試,沒發(fā)現(xiàn)什么可用信息;




三 然后看tomcat控制臺輸出信息,這個在Linux下不像Windows下有個控制臺的面板可看;在linux下進入tomcat的logs目錄,打命令tail?-f?catalina.out可看到tomcat控制臺的輸出;


這個查看會自己刷新,如果要退出查看,打Ctrl+C,返回到linux命令行界面;
通過這個圖可以看到錯誤代碼在AddPicOtherServlet.java的57行;
56?File?savedFile?=?new?File(uploadPath,?name);
57?item.write(savedFile);
就是往磁盤上寫文件時出錯的; 下圖這個是遠程連接Linux的工具;



四 后來研究了下資料,這個是權限引起的;本身tomcat用root啟動,可以對任何目錄讀寫;但Java程序有個限制,Java程序默認只對Java程序自身所在目錄有寫的權限,對別的目錄寫文件要在代碼里設置一下;
File?savedFile?=?new?File(uploadPath,?name);
savedFile.setWritable(true,false);
item.write(savedFile);
中間這句就是設置可寫權限的;加了這句就可上傳了;

五 遠程重啟Linux服務器上的tomcat服務,用putty工具,按下圖進行;


最近火氣重,解決完問題中午出去吃飯順便買盒六味地黃丸,吃一顆,降降火;

總結

以上是生活随笔為你收集整理的解决Java Web对Linux服务器不能上传文件的难题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产在线一区二 | 日韩视频中文字幕在线观看 | 精品视频一区二区三区四区 | 中文字幕第一页在线播放 | 精品一区二区三区av | 男女69视频 | 人妻内射一区二区在线视频 | 国产精品九一 | jizzjizz国产| 国产精品呻吟久久 | 最新天堂av | 丁香六月综合 | 麻豆偷拍 | 丨国产丨调教丨91丨 | 99这里有精品视频 | 国产精品第二十页 | 久久久久亚洲精品 | 免费成人美女在线观看 | 91二区 | 97在线精品视频 | 黄色视屏网站 | 欧美精品久久久久久久多人混战 | 少妇呻吟视频 | 一区二三区| 亚洲好看站 | 国内精品毛片 | 96亚洲精品久久久蜜桃 | 国内视频一区二区 | 91午夜剧场| 色资源网站 | 女生扒开尿口给男生捅 | 亚洲天堂少妇 | 杨幂一区二区三区免费看视频 | 五月天婷婷丁香花 | 自拍偷拍国产视频 | 99re6在线精品视频免费播放 | 国产深夜视频 | 国产精品国语对白 | 亚洲理论片在线观看 | 在线观看欧美一区二区 | 亚洲成人一区二区 | 久久久久久久久久久久久久久 | www.av欧美 | 精品视频在线一区二区 | 美丽姑娘免费观看在线观看 | 中文av在线播放 | 在线无码va中文字幕无码 | 欧美888| 欧美一级鲁丝片 | 成人在线免费网址 | av无码精品一区二区三区宅噜噜 | 波多野久久 | 在线天堂在线 | 欧美www | 婷婷免费视频 | 亚洲伊人影院 | 美日韩久久| 国产精品第六页 | 国产日韩成人内射视频 | 美女啪啪动态图 | 美女野外找人搭讪啪啪 | 毛片在线视频观看 | 亚洲日本免费 | 国产精品永久在线 | 中文字幕av网 | 精品免费国产一区二区三区四区 | 亚洲一级中文字幕 | 色91| 可以免费看污视频的网站 | 欧美一区二区在线视频观看 | 国产一级片毛片 | 黄色大片在线 | av免费观看网站 | 禁漫天堂黄漫画无遮挡观看 | 人与嘼交av免费 | ktv做爰视频一区二区 | 久热精品在线观看 | 国精品一区二区三区 | 青草操 | 国产精品短视频 | 极品销魂美女一区二区三区 | 日本天堂一区 | 中国少妇毛片 | 最新视频 - 8mav | 在线观看国产小视频 | 亚洲AV无码精品久久一区二区 | 日本精品在线视频 | 免费国偷自产拍精品视频 | 伊人成人久久 | 中文字幕 欧美激情 | 国产高清精品软件丝瓜软件 | 日韩在线观看视频网站 | 亚洲中文字幕无码不卡电影 | 91免费视频 | 日本一区二区精品视频 | 视频一区在线观看 | 亚洲va韩国va欧美va精品 | 亚洲aa视频 | 亚洲50p|