摘要:第一步搭環境基本我們要清楚自己的版本。因為我們配置的成功的前提是版本相對應。解壓縮都隨便一個盤都行,下圖是我的路徑配置相關環境變量,由于本人之前已經配置了開發時環境,即。這個顯示上傳狀態與后面在中有定義。
第一步:
搭環境,基本jdk 1.6+apache tomcat6.0+myeclipse2014 1.我們要清楚自己的jdk版本。因為我們Apache Tomcat配置的成功的前提是版本相對應。 安裝jdk1.6是由于myeclipse中新建webproject時,有可能只有1.6和1.7兩個選項,不過不同的myeclipse版本應該不同,如下圖:
具體安裝的jdk的過程和環境變量的設置就百度一下,教程很多,安裝好了之后,查看一下版本,如下圖:
2.安裝apache tomcat6.0,推薦安裝壓縮版,下載之后直接解壓縮,然后設置一下環境變量就可以用了。
解壓縮都隨便一個盤都行,下圖是我的路徑:
5.配置相關環境變量,由于本人之前已經配置了Java開發時環境,即JDK。因此JAVA_HOME就不必再配置了
1)環境變量1:CATALINA_HOME,環境變量值:F: omcat-6.0.35
(環境變量值即為相應ZIP文件解壓目錄)
2)環境變量2:CATALINA_BASE,環境變量值:F: omcat-6.0.35
(與CATALINA相同)
3)環境變量2:TOMCAT_HOME,環境變量值:F: omcat-6.0.35
(與CATALINA相同)
4)環境變量3:CALSSPATH,修改環境變量值,在其后加上:%CATALINA_HOME%libservlet-api.jar;
5)環境變量4:PATH,修改環境變量值,在其后加上:%CATALINA_HOME%libservlet-api.jar;
圖片展示:
環境變量設置好了之后,需要修改一些tomcat的配置信息,路徑:F: omcat-6.0.35confserver.xml如何跟下圖一樣的,可以不用修改:
上面的東西全部配置完成之后,可以啟動一下tomcat,看是否配置成功,雙擊 F: omcat-6.0.35in目錄下的startup.bat:
這樣就顯示配置成功了,然后我們可以訪問一下tomcat自帶的例子,打開瀏覽器輸入localhost:80/index.html,80是端口號,可自行修改,如何沒有修改過,則是8080,如下圖所示:
3.安裝myeclipse 2014,安裝過程很簡單,只分享一下安裝包和破解包,破解包中自帶破解教程,百度云鏈接https://pan.baidu.com/s/1c13JSdE 密碼:3ji7
安裝與破解完成之后,首先將myeclipse的編碼格式改為UTF-8國際編碼。
window->perferences 如圖:
由于myeclipse不會自動導入你配置好的jdk,需要手動配置,因為沒有什么特殊的,直接百度配置教程:http://jingyan.baidu.com/arti...
myeclipse中配置tomcat和如何啟動的教程也比較多,也好找,鏈接:http://jingyan.baidu.com/arti...
這是我配置好了后
點擊上圖中圓圈圈起來的圖標,啟動你自己導入的tomcat,然后矩形框是用來將你創建的web project映射到F: omcat-6.0.35webapps目錄下
新建一個web project
...]
然后映射到webapps目錄下:
然后開始寫代碼:
首先將index.jsp的編碼格式設置為UTF-8
然后導入jsp-api.jar,這個包在
index.jsp中的主要代碼為
form 中action的值為與后面建立的servlet/JSP mapping URL一致,可以先建立了servlet再來修改這個值。
${result}這個顯示上傳狀態,與后面在SmartUpload.java中有定義。
showPreView(this)方法是用來預覽圖片的。
新建servlet
建立成功了之后,可以看到web.xml中的一些自動配置好的信息:
SmartUpload.java
package com.upload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.RandomAccessFile; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class SmartUpload extends HttpServlet { // 定義允許上傳的文件擴展名 private String Ext_Name = "gif,jpg,jpeg,png,bmp,swf,flv,mp3,wav,wma,wmv,mid,avi,mpg,asf,rm,rmvb,doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2"; //顯示上傳文件的結果 private String result=null; public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req,resp); } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //獲取上傳文件流 InputStream fileSource=req.getInputStream(); //設置臨時文件名 String tempFileName="F:/tempFile"; File tempFile=new File(tempFileName); //文件輸出流,將上傳的文件寫入按字節流臨時文件 FileOutputStream outputStream=new FileOutputStream(tempFile); byte b[]=new byte[1024]; int n; while((n=fileSource.read(b))!=-1){ outputStream.write(b,0,n); } outputStream.close(); fileSource.close(); //創建文件隨機流,讀取臨時文件 RandomAccessFile randomFile=new RandomAccessFile(tempFile,"r"); //第一行的垃圾數據不需要 randomFile.readLine(); //在第二行中獲取文件后綴名 String str=randomFile.readLine(); //獲取文件后綴名 String fileExt=str.substring(str.indexOf(".")+1,str.lastIndexOf(""")).toLowerCase(); // 檢查擴展名 // 如果需要限制上傳的文件類型,那么可以通過文件的擴展名來判斷上傳的文件類型是否合法 System.out.println("上傳的文件的擴展名是:" + fileExt); if(!Ext_Name.contains(fileExt)){ System.out.println("上傳文件擴展名是不允許的擴展名:" + fileExt); result = result + "上傳文件擴展名是不允許的擴展名:" + fileExt + "
"; randomFile.close(); RequestDispatcher dispatcher=req.getRequestDispatcher("index.jsp"); dispatcher.forward(req, resp); return; } //得到保存文件的名字 String filename=makeFileName(fileExt); //重新定位文件指針到文件頭 randomFile.seek(0); long startPosition=0; int i=1; while((n=randomFile.readByte())!=-1&&i<=4){ if(n==" "){ startPosition=randomFile.getFilePointer(); i++; } } //startPosition=startPosition-1; //獲取文件內容結束位置 randomFile.seek(randomFile.length()); long endPosition=randomFile.getFilePointer(); int j=1; while(endPosition>=0&&j<=2){ endPosition--; randomFile.seek(endPosition); if(randomFile.readByte()==" "){ j++; } } endPosition=endPosition-1; String savePath="F:/images"; File fileupload=new File(savePath); if(!fileupload.exists()){ fileupload.mkdir(); } //新建文件和文件名字 File saveFile=new File(savePath,filename); RandomAccessFile randomAccessFile=new RandomAccessFile(saveFile,"rw"); //從臨時文件的當中讀取文件內容 randomFile.seek(startPosition); while(startPosition上傳圖片的頁面效果:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67584.html
相關文章
java Web開發實現手機拍照上傳到服務器
摘要:第一步搭環境基本我們要清楚自己的版本。因為我們配置的成功的前提是版本相對應。解壓縮都隨便一個盤都行,下圖是我的路徑配置相關環境變量,由于本人之前已經配置了開發時環境,即。這個顯示上傳狀態與后面在中有定義。 第一步: 搭環境,基本jdk 1.6+apache tomcat6.0+myeclipse2014 1.我們要清楚自己的jdk版本。因為我們Apache Tomcat配置的成...
關于手機端拍照上傳圖片的問題
摘要:關于移動端拍照上傳圖片的解決方案場景產品要求用戶拍一張身份證和一張人像,然后后臺調用商用接口比對證件和人像的匹配度。缺點手機拍照圖片過大,壓縮后,圖片依然大,沒上傳一次花費時間過長,最后再調用接口比對時間花費也長。 關于移動端拍照上傳圖片的解決方案 場景 產品要求用戶拍一張身份證和一張人像,然后后臺php調用商用接口比對證件和人像的匹配度。showImg(https://segment...
微信JSSDK 實現打開攝像頭拍照再將相片保存到服務器
摘要:在微信端打開手機攝像頭拍照,將拍照圖片保存到服務器上需要使用到微信的接口,主要使用到了拍照或從手機相冊中選圖接口上傳圖片接口參考資料一引入微信二通過接口注入權限驗證配置三微信端拍照接口默認可以指定是原圖還是壓縮圖,默認二者都有可以指 在微信端打開手機攝像頭拍照,將拍照圖片保存到服務器上需要使用到微信的JSSDK接口,主要使用到了拍照或從手機相冊中選圖接口(chooseImage),上傳...
發表評論
0條評論
Towers
男|高級講師
TA的文章
閱讀更多
WebHorizon:日本vps/新加坡vps,2核/4GB內存/80GB NVMe硬盤/2TB流量
閱讀 2574·2021-10-19 11:41
國家網信辦:禁止PUSH彈窗推送八卦緋聞等內容
閱讀 2415·2021-09-01 10:32
JS基礎入門篇( 一 )
閱讀 3377·2019-08-29 15:21
純CSS實現網站常用的五角星評分和分數展示交互效果
閱讀 1755·2019-08-29 12:20
前端實例練習 - 提示框
閱讀 1161·2019-08-29 12:13
webpack4 中的最新 React全家桶實戰使用配置指南!
閱讀 599·2019-08-26 12:24
Storage 接口
閱讀 2520·2019-08-26 10:26
JS判斷移動端、PC端、iOS端、安卓端
閱讀 827·2019-08-23 18:40
<閱讀需要支付1元查看