使用MyEclipse實(shí)現(xiàn)上傳時(shí),所選擇的請(qǐng)求必須是POST請(qǐng)求,如下jsp:

為越秀等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及越秀網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、越秀網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
body
h3 align="left"
上傳頭像
/h3
br
form action="UploadServlet" method="post"
enctype="multipart/form-data"
姓名:
input type="text" name="username"
br
頭像:
input type="file" name="photo"
br
input type="submit" value="上傳"
/form
/body
其次是需要添加上傳的jar包c(diǎn)ommons-fileupload-1.3.1.jar、commons-io-2.4.jar
最后需要在Servlet中進(jìn)行邏輯處理:
// 1、創(chuàng)建FileUpload對(duì)象
// (1)創(chuàng)建工廠
FileItemFactory factory = new DiskFileItemFactory();
// (2)創(chuàng)建FileUpload對(duì)象
ServletFileUpload upload = new ServletFileUpload(factory);
// (3)把請(qǐng)求中的所有數(shù)據(jù)轉(zhuǎn)換成FileItem對(duì)象
try {
ListFileItem list = upload.parseRequest(request);
// (4)判斷是文件域還是表單域,如果是表單域,則返回true
for (int i = 0; i list.size(); i++) {
if (list.get(i).isFormField()) {
// (5)獲取input標(biāo)簽中name屬性的值
if (list.get(i).getFieldName().equals("username")) {
// 輸出提取到的具體的值
System.out.println("用戶姓名為:"
+ list.get(i).getString("utf-8"));
}
} else {
// 輸出上傳的路徑
System.out.println("upload的路徑:"
+ getServletContext().getRealPath("upload"));
// 獲取到上傳的文件的名字
File file = new File(getServletContext().getRealPath(
"upload"),
list.get(i)
.getName()
.substring(
list.get(i).getName()
.lastIndexOf("\\") + 1));
list.get(i).write(file);
}
}
下面這樣的
思路分析:
自定義2個(gè)按鈕的屬性, 1個(gè)是小圖標(biāo)文件的位置,1個(gè)是大圖標(biāo)文件的位置
小圖標(biāo)文件的位置,用于給按鈕顯示出來(lái),當(dāng)按鈕的背景
當(dāng)點(diǎn)擊了按鈕后, 獲取大圖片的位置,然后在JLabel中顯示出來(lái)
其實(shí)就是上傳文件,方便點(diǎn)的下載個(gè)fileupload 插件,將文件轉(zhuǎn)換成流,然后再寫(xiě)出到指定的路徑,將存儲(chǔ)路徑存儲(chǔ)在數(shù)據(jù)庫(kù)中。再好點(diǎn)的,可以將這個(gè)頭像文件做一次壓縮處理,原圖一個(gè)路徑,壓縮圖一個(gè)路徑。壓縮圖路徑展示小圖,原圖路徑展示原圖。一般這個(gè)路徑都是基于工程的相對(duì)路徑。
select name="tupian"
option value="頭像1.jpg"頭像1/option
option value="頭像2.jpg"頭像2/option
/select
1、下載生成二維碼所需要的jar包qrcode.jar;2、直接上生成二維碼的java代碼 //需要導(dǎo)入的包import java.awt.Color;import java.awt.Graphics2D;import java.awt.Image;import java.awt.image.BufferedImage;import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode; /** * 生成二維碼(QRCode)圖片 * @param content 二維碼圖片的內(nèi)容 * @param imgPath 生成二維碼圖片完整的路徑 * @param ccbpath 二維碼圖片中間的logo路徑 */ public static int createQRCode(String content, String imgPath,String ccbPath) { try { Qrcode qrcodeHandler = new Qrcode(); qrcodeHandler.setQrcodeErrorCorrect('M'); qrcodeHandler.setQrcodeEncodeMode('B'); qrcodeHandler.setQrcodeVersion(7); // System.out.println(content); byte[] contentBytes = content.getBytes("gb2312"); //構(gòu)造一個(gè)BufferedImage對(duì)象 設(shè)置寬、高 BufferedImage bufImg = new BufferedImage(140, 140, BufferedImage.TYPE_INT_RGB); Graphics2D gs = bufImg.createGraphics(); gs.setBackground(Color.WHITE); gs.clearRect(0, 0, 140, 140); // 設(shè)定圖像顏色 BLACK gs.setColor(Color.BLACK); // 設(shè)置偏移量 不設(shè)置可能導(dǎo)致解析出錯(cuò) int pixoff = 2; // 輸出內(nèi)容 二維碼 if (contentBytes.length 0 contentBytes.length 120) { boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes); for (int i = 0; i codeOut.length; i++) { for (int j = 0; j codeOut.length; j++) { if (codeOut[j][i]) { gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3); } } } } else { System.err.println("QRCode content bytes length = " + contentBytes.length + " not in [ 0,120 ]. "); return -1; } Image img = ImageIO.read(new File(ccbPath));//實(shí)例化一個(gè)Image對(duì)象。 gs.drawImage(img, 55, 55, 30, 30, null); gs.dispose(); bufImg.flush(); // 生成二維碼QRCode圖片 File imgFile = new File(imgPath); ImageIO.write(bufImg, "png", imgFile); }catch (Exception e){ e.printStackTrace(); return -100; } return 0; }
來(lái)自網(wǎng)友 孤獨(dú)青鳥(niǎo)的博客
當(dāng)前名稱:java編寫(xiě)頭像代碼,頭像獲取代碼
文章URL:http://chinadenli.net/article26/hcjccg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、網(wǎng)站設(shè)計(jì)公司、微信公眾號(hào)、微信小程序、用戶體驗(yàn)、小程序開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)