『壹』 用Java如何實現頭像上傳
使用MyEclipse實現上傳時,所選擇的請求必須是POST請求,如下jsp:
<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包commons-fileupload-1.3.1.jar、commons-io-2.4.jar
最後需要在Servlet中進行邏輯處理:
// 1、創建FileUpload對象
// (1)創建工廠
FileItemFactory factory = new DiskFileItemFactory();
// (2)創建FileUpload對象
ServletFileUpload upload = new ServletFileUpload(factory);
// (3)把請求中的所有數據轉換成FileItem對象
try {
List<FileItem> list = upload.parseRequest(request);
// (4)判斷是文件域還是表單域,如果是表單域,則返回true
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isFormField()) {
// (5)獲取input標簽中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);
}
}
『貳』 如何java中實現上傳頭像功能
方法一:
①下載fileupload 插件,將文件轉換成流;
方法二:
可以將頭像文件做一次壓縮處理,原圖一個路徑,壓縮圖一個路徑。壓縮圖路徑展示的是小圖,原圖路徑展示的是原圖。
『叄』 java 圖片上傳,圖片上傳是上傳到哪裡比較好伺服器上還是資料庫
上傳到伺服器上會比較好,資料庫可以記錄一些必要的信息,比如文件的名稱,類型(擴展名),大小,創建時間及誰的文件等等;如果把文件放入資料庫,讀寫性能不如文件系統,還會加大資料庫的壓力。放到伺服器上注意要設計好一個文件結構,不然以後一個文件夾里有成千上萬個文件,打開那個文件夾就要好久,更不用說查找和下載了。
『肆』 如何java中實現上傳頭像功能
其實就是上傳文件,方便點的下載個fileupload 插件,將文件轉換成流,然後再寫出到指定的路徑,將存儲路徑存儲在資料庫中。再好點的,可以將這個頭像文件做一次壓縮處理,原圖一個路徑,壓縮圖一個路徑。壓縮圖路徑展示小圖,原圖路徑展示原圖。一般這個路徑都是基於工程的相對路徑。
『伍』 java web實現上傳頭像功能,
你最好是固定一台為文件伺服器,用來上傳圖片,或者上傳時把上傳到哪台伺服器記錄到資料庫裡面去做個標記,查詢時候判斷一下
『陸』 在Java項目中上傳圖片時如何使上傳的圖片自動保存到指定路徑
用struts也可以實現 多文件上傳
下面是我寫的代碼,
參數中有要保存的目錄
作為參考!
/*文件目錄*/
public static String [] fileArray={
"logo.png",
"index.swf",
"OEMInfo.txt",
"favicon.ico"};
/**
* @author Caoshun
* @see 接收並保存文件
* */
public static void receiveAndSaveAllFileByPath(ActionForm form,String rootPath1,String rootPath2){
String fileName="";
//獲取表單中的文件資源
Hashtable<Object, Object> files = form.getMultipartRequestHandler().getFileElements();
//遍歷文件,並且循環保存
//當前處理文件序號
int file_num=1;
for (Enumeration<Object> e = files.keys(); e.hasMoreElements();) {
/*根據處理的當前文件下標,確定文件名*/
fileName=fileArray[file_num-1];
FormFile file = (FormFile) files.get((String) e.nextElement());
if (file != null && file.getFileSize() > 0) {
try {
//使用formfile.getInputStream()來獲取一個文件的輸入流進行保存。
//文件名
//String fileName = file.getFileName();
//System.out.println("debug in AddEnterpriceAction.java on line 152 fileName is : "+fileName);
//文件大小
//int fileSize = file.getFileSize();
//文件流
InputStream is = file.getInputStream();
//將輸入流保存到文件
//String rootPath = this.servlet.getServletContext().getRealPath("files");
//往cn中寫入
File rf = new File(rootPath1);
FileOutputStream fos = null;
fos = new FileOutputStream(new File(rf, fileName));
byte[] b = new byte[10240];
int real = 0;
real = is.read(b);
while (real > 0) {
fos.write(b, 0, real);
real = is.read(b);
}
//往en中寫入
File rf2 = new File(rootPath2);
InputStream is2 = file.getInputStream();
FileOutputStream fos2 = null;
fos2 = new FileOutputStream(new File(rf2, fileName));
byte[] b2 = new byte[10240];
int real2 = 0;
real2 = is2.read(b2);
while (real2 > 0) {
fos2.write(b2, 0, real2);
real2 = is2.read(b2);
}
//關閉文件流
fos.close();
is.close();
fos2.close();
is2.close();
} catch (RuntimeException e1) {
e1.printStackTrace();
} catch (Exception ee) {
ee.printStackTrace();
}
file.destroy();
}
file_num++;
}
}
『柒』 在Java web網站中用戶注冊信息時希望用戶可以選擇自己的頭像,然後將照片存到sql server資料庫中,怎麼辦
用戶信息表增加頭像地址 欄位
用文件上傳的控制項,文件上傳到伺服器指定文件夾,獲取該路徑,將該路徑保存到資料庫
登錄的時候再取出來跟其他用戶屬性一樣,顯示的地方拼接到img標簽里
『捌』 java 社交網站、博客等用戶頭像是怎麼存儲的
圖片存在專門的資源伺服器上,資料庫存url,帶域名的完整url
『玖』 java項目客戶上傳的圖片放到哪好
圖片上傳一般考慮兩種辦法:1、上傳到伺服器,資料庫中存儲伺服器上圖片的相對路徑;2、轉換為二進制流存入到資料庫中。現在常用的做法都是選擇第一種,因為第二種太占資料庫空間,而且查找讀取效率不高。很多開源的文件上傳框架(比如spring中的commons-fileupload)都是採用第一種方式。上傳圖片到伺服器不會影響系統的運行速度,你可以選擇將圖片的目錄建立在非系統盤,存儲容量比較大的盤,如F盤等。注意圖片名字不要重復,建議用uuid