㈠ java用前端控制項實現用戶頭像上傳,上傳成功的同時用戶昵稱變為了圖片的名稱,重新登錄昵稱是不會變的。。
你自己程序的bug,請檢查,看看上傳完成的回調函數是不是你錯誤的調用了啥。
ps:是個沒女朋友的宅男吧,圖片這么日韓風。。。
㈡ java問題: 當上傳頭像時,如何去掉背景顏色,只要頭而已,這應該怎麼弄,用到什麼技術,求問
嘗試用html5或者js來處理圖片這樣壓力會在客戶端,java伺服器端處理的話 比較麻煩還得存儲或者通過流傳遞。 具體技術方面要看下js和html5的一些功能,不過肯定不可能人工不參與直接處理,需要認為去選擇區域然後填充顏色的,類似我們用ps 處理圖片的。
㈢ java版本的flash頭像上傳功能的實現,希望提供簡單易懂的思路,。或則有可以運行的例子和源碼那就感激不盡
flash頭像?是個flash?
不過不管什麼樣的,原理是不變的:
上傳文件(上傳flash頭像到伺服器)
展示文件(顯示上傳的flash頭像)
㈣ 如何java中實現上傳頭像功能
其實就是上傳文件,方便點的下載個fileupload 插件,將文件轉換成流,然後再寫出到指定的路徑,將存儲路徑存儲在資料庫中。再好點的,可以將這個頭像文件做一次壓縮處理,原圖一個路徑,壓縮圖一個路徑。壓縮圖路徑展示小圖,原圖路徑展示原圖。一般這個路徑都是基於工程的相對路徑。
㈤ 怎樣才能上傳頭像
用什麼代碼寫?
JSP的<%@ page autoFlush="false" contentType="text/html;charset=utf-8" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*,java.io.FileInputStream,java.io.FileOutputStream,java.awt.*"%>
<%@ page import="com.blog.vo.*" %>
<%
SmartUpload mySmartUpload =new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="uploadfile/images/"; //應保證在根目錄中有此目錄的存在
//初始化
mySmartUpload.initialize(pageContext);
//只允許上載此類文件
try {
mySmartUpload.setAllowedFilesList("jpg,gif,JPG,GIF");
//上載文件
mySmartUpload.upload();
} catch (Exception e){
%>
<SCRIPT language=javascript>
alert("只允許上傳.jpg和.gif類型圖片文件");
window.location='face.jsp';
</script>
<%
}
try{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){%>
<SCRIPT language=javascript>
alert("請先選擇要上傳的文件");
window.location='face.jsp';
</script>
<%}
else{
//String myFileName=myFile.getFileName(); //取得上載的文件的文件名
ext= myFile.getFileExt(); //取得後綴名
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
if(file_size<file_size_max){
//更改文件名,取得當前上傳時間的毫秒數值
Calendar calendar = Calendar.getInstance();
String filename = String.valueOf(calendar.getTimeInMillis());
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路徑
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//-----------------------上傳完成,開始生成縮略圖-------------------------
java.io.File file = new java.io.File(saveurl); //讀入剛才上傳的文件
String newurl=request.getRealPath("/")+url+filename+"_min."+ext; //新的縮略圖保存地址
Image src = javax.imageio.ImageIO.read(file); //構造Image對象
float tagsize=110;
int old_w=src.getWidth(null); //得到源圖寬
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0; //得到源圖長
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
new_w=Math.round(old_w/tempdouble);
new_h=Math.round(old_h/tempdouble);//計算新圖長寬
BufferedImage image = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);//創建一個BufferedImage來作為圖像*作容器
Graphics g = image.getGraphics(); //創建一個繪圖環境來進行繪制圖象
g.drawImage(src,0,0,new_w,new_h,null); //將原圖像數據流載入這個BufferedImage
g.setFont(new Font("Times New Roman",Font.PLAIN,24)); //設定文本字體
String rand = "";
g.setColor(Color.red); //設定文本顏色
g.drawString(rand,new_w-200,new_h-10); //向BufferedImage寫入文本字元
g.dispose(); //使更改生效FileOutputStream newimage=new FileOutputStream(newurl); //輸出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(image); //近JPEG編碼
newimage.close();
UserInfo ui = (UserInfo)request.getSession().getAttribute("userinfo");
ui.setFace(url+filename+"_min."+ext);
session.setAttribute("userinfo",ui);
String turl="face.jsp?src="+url+filename+"_min."+ext;
out.print("<SCRIPT language='javascript'>");
out.print("window.location='"+turl+"'");
out.print("</SCRIPT>");
}
else{
out.print("<SCRIPT language='javascript'>");
out.print("alert('上傳文件大小不能超過"+(file_size_max/1000)+"K');");
out.print("window.location='face.jsp;'");
out.print("</SCRIPT>");
}
}
}catch (Exception e){e.toString();}%>
㈥ java頭像上傳求代碼
你看看這個,使我們項目用到的
/**
* 上傳圖片
*/
@RequestMapping(value="/reviseTuPian",method=RequestMethod.POST)
@ExceptionHandler(Exception.class)
public String reviseTuPian(Model model,HttpServletResponse response,HttpServletRequest request,Exception ex){
//獲取session
UserInfos info = (UserInfos) request.getSession().getAttribute("user");
//保存對象值
Map<String, String> parameterMap = new HashMap<String, String>();
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
fileUpload.setFileSizeMax(1024 * 200);
String filename=null;
try {
List<FileItem> fileItems = fileUpload.parseRequest(request);
for (FileItem fileItem : fileItems) {
if (fileItem.isFormField()){
//不是上傳文件
String description = fileItem.getFieldName();
String value = fileItem.getString("utf-8");//處理亂碼
parameterMap.put(description, value);
}else {
filename = fileItem.getName();
if (filename == null || filename.trim().length() == 0) {
parameterMap.put("imgurl", null);
}else{
filename = UploadUtils.subFileName(filename);
String uuidname = UploadUtils.generateRandonFileName(filename);
String dir = UploadUtils.generateRandomDir(uuidname);
File dirFile = new File(request.getSession().getServletContext().getRealPath(
"/touxiang" + dir));
dirFile.mkdirs();//創建目錄
InputStream in = new BufferedInputStream(fileItem.getInputStream());
OutputStream out = new BufferedOutputStream(new FileOutputStream(new File(dirFile,uuidname)));
int b;
while((b = in.read())!=-1){
out.write(b);
}
in.close();
out.close();
//刪除文件
fileItem.delete();
// 生成小圖
PicUtils picUtils = new PicUtils(dirFile.getCanonicalPath()
+ "/" + uuidname);
picUtils.resize(150, 150);
//獲取小圖路徑
String img_s = UploadUtils.getImg_s(uuidname);
//System.out.println("qfeer圖片名稱qwfwdfq"+img_s);
parameterMap.put("imgurl", "/touxiang"+dir+"/"+img_s);
}
}
}
} catch ( e) {
model.addAttribute("asg", "文件大小不得超過100k");
e.printStackTrace();
//request.setAttribute("asg", "文件大小不得超過100k");
return "redirect:/reviseUser.do";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(filename!=""){ //上傳圖片是否為空
String[] m=filename.split("\\.");
String[] n={"BMP","JPG","JPEG","PNG","GIF"};
for (int i = 0; i < n.length; i++) {
if(m[1].equalsIgnoreCase(n[i])){
//添加數據
info.setHeadImageUrl(parameterMap.get("imgurl"));
//調用業務層
ufil.updateNiChengUser(info);
model.addAttribute("asg", "頭像更新成功");
System.out.println("*************上傳保存路徑*****************"+request.getSession().getServletContext().getRealPath("/"));
break;
}else{
System.out.println("頭像更新失敗");
model.addAttribute("asg", "圖片格式不正確,請重新選擇");
}
} //循環結束
}else{ //判斷結束圖片為空時候
//添加數據
info.setHeadImageUrl(parameterMap.get("imgurl"));
//調用業務層
ufil.updateNiChengUser(info);
System.out.println("*************上傳保存路徑*****************"+request.getSession().getServletContext().getRealPath("/"));
model.addAttribute("asg", "圖片更新成功");
}
return "redirect:/reviseUser.do";
}
㈦ javaweb 上傳頭像
前台:<form method="post" id="form_photo"enctype="multipart/form-data"action="xxxx.do">
<input type="file"name="upload-file">
<input type="submit"value="上傳">
</form>
後台:
public String uploadImgs(MultipartFile multFile, HttpServletRequest request, HttpServletResponse response,int id) throws Exception{
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
MultipartFile multFile = multiRequest.getFile("upload_file");
ImageInputStream iis = null;
// 擴展名格式:
String extName = "";
String newName = "";
boolean flag = true;
//取得上傳的文件名
String fileName = multFile.getOriginalFilename();
if(!fileName.isEmpty() && !"".equals(fileName.trim())){
//上傳文件的大小
long size = multFile.getSize();
if(size > (1024*1024)){
flag = false;
}
if (fileName.lastIndexOf(".") >= 0) {
extName = fileName.substring(fileName.lastIndexOf("."));
}
//定義允許上傳的文件類型
List<String> fileTypes = new ArrayList<String>();
fileTypes.add(".jpg");
fileTypes.add(".jpeg");
fileTypes.add(".gif");
fileTypes.add(".png");
if(!fileTypes.contains(extName.toLowerCase())){
flag = false;
} //這是存儲的路徑,直接在你的項目下加個目錄
String savePath =request.getSession().getServletContext().getRealPath("/images/")+"/";
File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
if(flag){
//以ID為名
newName =id+"";
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(new String(extName.substring(1).getBytes(),"utf-8"));
ImageReader reader = it.next();
iis = ImageIO.createImageInputStream(multFile.getInputStream());
reader.setInput(iis,true) ;
ImageReadParam param = reader.getDefaultReadParam();
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, extName.substring(1), new File(savePath + newName + ".jpg"));
}
}
}
//顯示頭像直接用路徑取/images/id.jpg
㈧ java web實現上傳頭像功能,
你最好是固定一台為文件伺服器,用來上傳圖片,或者上傳時把上傳到哪台伺服器記錄到資料庫裡面去做個標記,查詢時候判斷一下
㈨ java web開發中 用戶上傳頭像如何實現,盡量詳細些。。。。謝謝各位大俠!
1、准確的說,應該是文件上傳如何實現。
2、文件上傳,一般都是能過組件來實現,
自己來寫上傳的話,不太方便,也沒必要,別人都做的太多了。
3、smartupload或是common-fileupload都是經常用的組件,具體用法,直接搜「smartupload
上傳案例"或是」common-fileupload
使用案例「就可以了。
㈩ 用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);
}
}