摘要:第一步搭環(huán)境基本我們要清楚自己的版本。因?yàn)槲覀兣渲玫某晒Φ那疤崾前姹鞠鄬?duì)應(yīng)。解壓縮都隨便一個(gè)盤(pán)都行,下圖是我的路徑配置相關(guān)環(huán)境變量,由于本人之前已經(jīng)配置了開(kāi)發(fā)時(shí)環(huán)境,即。這個(gè)顯示上傳狀態(tài)與后面在中有定義。
第一步:
搭環(huán)境,基本jdk 1.6+apache tomcat6.0+myeclipse2014 1.我們要清楚自己的jdk版本。因?yàn)槲覀傾pache Tomcat配置的成功的前提是版本相對(duì)應(yīng)。 安裝jdk1.6是由于myeclipse中新建webproject時(shí),有可能只有1.6和1.7兩個(gè)選項(xiàng),不過(guò)不同的myeclipse版本應(yīng)該不同,如下圖:
具體安裝的jdk的過(guò)程和環(huán)境變量的設(shè)置就百度一下,教程很多,安裝好了之后,查看一下版本,如下圖:
2.安裝apache tomcat6.0,推薦安裝壓縮版,下載之后直接解壓縮,然后設(shè)置一下環(huán)境變量就可以用了。
解壓縮都隨便一個(gè)盤(pán)都行,下圖是我的路徑:
5.配置相關(guān)環(huán)境變量,由于本人之前已經(jīng)配置了Java開(kāi)發(fā)時(shí)環(huán)境,即JDK。因此JAVA_HOME就不必再配置了
1)環(huán)境變量1:CATALINA_HOME,環(huán)境變量值:F: omcat-6.0.35
(環(huán)境變量值即為相應(yīng)ZIP文件解壓目錄)
2)環(huán)境變量2:CATALINA_BASE,環(huán)境變量值:F: omcat-6.0.35
(與CATALINA相同)
3)環(huán)境變量2:TOMCAT_HOME,環(huán)境變量值:F: omcat-6.0.35
(與CATALINA相同)
4)環(huán)境變量3:CALSSPATH,修改環(huán)境變量值,在其后加上:%CATALINA_HOME%libservlet-api.jar;
5)環(huán)境變量4:PATH,修改環(huán)境變量值,在其后加上:%CATALINA_HOME%libservlet-api.jar;
圖片展示:
環(huán)境變量設(shè)置好了之后,需要修改一些tomcat的配置信息,路徑:F: omcat-6.0.35confserver.xml如何跟下圖一樣的,可以不用修改:
上面的東西全部配置完成之后,可以啟動(dòng)一下tomcat,看是否配置成功,雙擊 F: omcat-6.0.35in目錄下的startup.bat:
這樣就顯示配置成功了,然后我們可以訪問(wèn)一下tomcat自帶的例子,打開(kāi)瀏覽器輸入localhost:80/index.html,80是端口號(hào),可自行修改,如何沒(méi)有修改過(guò),則是8080,如下圖所示:
3.安裝myeclipse 2014,安裝過(guò)程很簡(jiǎn)單,只分享一下安裝包和破解包,破解包中自帶破解教程,百度云鏈接https://pan.baidu.com/s/1c13JSdE 密碼:3ji7
安裝與破解完成之后,首先將myeclipse的編碼格式改為UTF-8國(guó)際編碼。
window->perferences 如圖:
由于myeclipse不會(huì)自動(dòng)導(dǎo)入你配置好的jdk,需要手動(dòng)配置,因?yàn)闆](méi)有什么特殊的,直接百度配置教程:http://jingyan.baidu.com/arti...
myeclipse中配置tomcat和如何啟動(dòng)的教程也比較多,也好找,鏈接:http://jingyan.baidu.com/arti...
這是我配置好了后
點(diǎn)擊上圖中圓圈圈起來(lái)的圖標(biāo),啟動(dòng)你自己導(dǎo)入的tomcat,然后矩形框是用來(lái)將你創(chuàng)建的web project映射到F: omcat-6.0.35webapps目錄下
新建一個(gè)web project
...]
然后映射到webapps目錄下:
然后開(kāi)始寫(xiě)代碼:
首先將index.jsp的編碼格式設(shè)置為UTF-8
然后導(dǎo)入jsp-api.jar,這個(gè)包在
index.jsp中的主要代碼為
form 中action的值為與后面建立的servlet/JSP mapping URL一致,可以先建立了servlet再來(lái)修改這個(gè)值。
${result}這個(gè)顯示上傳狀態(tài),與后面在SmartUpload.java中有定義。
showPreView(this)方法是用來(lái)預(yù)覽圖片的。
新建servlet
建立成功了之后,可以看到web.xml中的一些自動(dòng)配置好的信息:
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 { // 定義允許上傳的文件擴(kuò)展名 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"; //顯示上傳文件的結(jié)果 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(); //設(shè)置臨時(shí)文件名 String tempFileName="F:/tempFile"; File tempFile=new File(tempFileName); //文件輸出流,將上傳的文件寫(xiě)入按字節(jié)流臨時(shí)文件 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(); //創(chuàng)建文件隨機(jī)流,讀取臨時(shí)文件 RandomAccessFile randomFile=new RandomAccessFile(tempFile,"r"); //第一行的垃圾數(shù)據(jù)不需要 randomFile.readLine(); //在第二行中獲取文件后綴名 String str=randomFile.readLine(); //獲取文件后綴名 String fileExt=str.substring(str.indexOf(".")+1,str.lastIndexOf(""")).toLowerCase(); // 檢查擴(kuò)展名 // 如果需要限制上傳的文件類(lèi)型,那么可以通過(guò)文件的擴(kuò)展名來(lái)判斷上傳的文件類(lèi)型是否合法 System.out.println("上傳的文件的擴(kuò)展名是:" + fileExt); if(!Ext_Name.contains(fileExt)){ System.out.println("上傳文件擴(kuò)展名是不允許的擴(kuò)展名:" + fileExt); result = result + "上傳文件擴(kuò)展名是不允許的擴(kuò)展名:" + 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; //獲取文件內(nèi)容結(jié)束位置 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"); //從臨時(shí)文件的當(dāng)中讀取文件內(nèi)容 randomFile.seek(startPosition); while(startPosition上傳圖片的頁(yè)面效果:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/87177.html
相關(guān)文章
java Web開(kāi)發(fā)實(shí)現(xiàn)手機(jī)拍照上傳到服務(wù)器
摘要:第一步搭環(huán)境基本我們要清楚自己的版本。因?yàn)槲覀兣渲玫某晒Φ那疤崾前姹鞠鄬?duì)應(yīng)。解壓縮都隨便一個(gè)盤(pán)都行,下圖是我的路徑配置相關(guān)環(huán)境變量,由于本人之前已經(jīng)配置了開(kāi)發(fā)時(shí)環(huán)境,即。這個(gè)顯示上傳狀態(tài)與后面在中有定義。 第一步: 搭環(huán)境,基本jdk 1.6+apache tomcat6.0+myeclipse2014 1.我們要清楚自己的jdk版本。因?yàn)槲覀傾pache Tomcat配置的成...
關(guān)于手機(jī)端拍照上傳圖片的問(wèn)題
摘要:關(guān)于移動(dòng)端拍照上傳圖片的解決方案場(chǎng)景產(chǎn)品要求用戶(hù)拍一張身份證和一張人像,然后后臺(tái)調(diào)用商用接口比對(duì)證件和人像的匹配度。缺點(diǎn)手機(jī)拍照?qǐng)D片過(guò)大,壓縮后,圖片依然大,沒(méi)上傳一次花費(fèi)時(shí)間過(guò)長(zhǎng),最后再調(diào)用接口比對(duì)時(shí)間花費(fèi)也長(zhǎng)。 關(guān)于移動(dòng)端拍照上傳圖片的解決方案 場(chǎng)景 產(chǎn)品要求用戶(hù)拍一張身份證和一張人像,然后后臺(tái)php調(diào)用商用接口比對(duì)證件和人像的匹配度。showImg(https://segment...
微信JSSDK 實(shí)現(xiàn)打開(kāi)攝像頭拍照再將相片保存到服務(wù)器
摘要:在微信端打開(kāi)手機(jī)攝像頭拍照,將拍照?qǐng)D片保存到服務(wù)器上需要使用到微信的接口,主要使用到了拍照或從手機(jī)相冊(cè)中選圖接口上傳圖片接口參考資料一引入微信二通過(guò)接口注入權(quán)限驗(yàn)證配置三微信端拍照接口默認(rèn)可以指定是原圖還是壓縮圖,默認(rèn)二者都有可以指 在微信端打開(kāi)手機(jī)攝像頭拍照,將拍照?qǐng)D片保存到服務(wù)器上需要使用到微信的JSSDK接口,主要使用到了拍照或從手機(jī)相冊(cè)中選圖接口(chooseImage),上傳...
發(fā)表評(píng)論
0條評(píng)論
only_do
男|高級(jí)講師
TA的文章
閱讀更多
千呼萬(wàn)喚,web人臉識(shí)別登錄完整版來(lái)了,這樣式我愛(ài)了
閱讀 2584·2021-11-25 09:43
云虛擬主機(jī)是什么-虛擬主機(jī)和云主機(jī)的區(qū)別是什么?
閱讀 1858·2021-09-22 15:26
【bug庫(kù)】Safari瀏覽器white-space:nowrap不生效
閱讀 3735·2019-08-30 15:56
關(guān)于git常用命令
閱讀 1712·2019-08-30 15:55
記一些css 3效果
閱讀 1897·2019-08-30 15:54
移動(dòng)前端中 viewport (視口)
閱讀 814·2019-08-30 15:52
DIV的失去焦點(diǎn)(blur)實(shí)現(xiàn)
閱讀 3156·2019-08-29 16:23
webpack學(xué)習(xí)心得
閱讀 895·2019-08-29 12:43
<閱讀需要支付1元查看