這幾天事情太多,弄的有些疲憊,不過(guò)除了工作原因跟女友暫時(shí)分居兩地外,其余的也都是好事居多.疲憊之余也多了幾分安慰。
已經(jīng)一年多沒(méi)有回家了。反倒不覺(jué)得如何,倒是中間回過(guò)兩次家的女友,喜歡拉我一起盤(pán)算51回家的事宜,說(shuō)到回家,滿腦子想的最多的莫過(guò)于"吃",從羊肉包子到?jīng)銎?再?gòu)膿{面皮到涮羊肉,兩個(gè)人經(jīng)常說(shuō)的口水橫飛.欲罷不能.狠不得把濮陽(yáng)能吃的都吃完,省的給自己留下殘念.
如果時(shí)間允許,51真要回去一趟了.有些想念家人了。
2006年3月13日 #
原因是lib里少了antlr-2.7.5H3.jar 這個(gè)文件。。郁悶了一個(gè)下午。
加上后一切成功。。Hibernate好東西。
這個(gè)問(wèn)題讓我郁悶了兩三天時(shí)間,最后才發(fā)現(xiàn)問(wèn)題是在JSP端 <html:form action="/uploadsAction" enctype="multipart/form-data" >
標(biāo)簽如果少了" enctype="multipart/form-data" 服務(wù)器就會(huì)報(bào)錯(cuò),
下面把代碼貼出來(lái).
JSP端
<html:errors />
<html:form action="/uploadsAction" enctype="multipart/form-data" >
<html:file property="theFile" />
<html:radio property="upType" value="a" />CSVFileReader
<html:radio property="upType" value="b" />FileUp
<html:submit value="OK" />
</html:form>
FormBean中將屬性定義為FormFile,geter seter 方法依舊.
Action 中的代碼如下:實(shí)現(xiàn)將圖片上傳至UPLOAD文件夾內(nèi) 如果文件大于20K或是寬&高超過(guò)規(guī)定范圍的,會(huì)重新勾畫(huà).實(shí)現(xiàn)對(duì)上傳圖片的控制.
當(dāng)然這只是測(cè)試Action沒(méi)有跳轉(zhuǎn)頁(yè)面..
package upload;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;
import org.apache.struts.upload.*;
import java.io.IOException;
import java.awt.Image;
import java.awt.image.BufferedImage;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.sun.image.codec.jpeg.JPEGCodec;
import java.io.File;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
public class UploadAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse)throws Exception {
System.out.println("asdasdasdasdasdasd");
UploadForm uploadForm = (UploadForm) actionForm;
FormFile pic = uploadForm.getPic();
String picname = pic.getFileName();
String uploadFileName = servletRequest.getSession()
.getServletContext()
.getRealPath("upload")+"\\"+picname;
File upliadFile = new File(uploadFileName);
BufferedInputStream bis = null;
Image image = null;
BufferedOutputStream bos = null;
try{
if(pic.getFileSize()<2*1024*1024){
bis = new BufferedInputStream(pic.getInputStream());
image = javax.imageio.ImageIO.read(bis);
int width = image.getWidth(null);
int height = image.getHeight(null);
int w = 160;
int h = 120;
if(width>w||height>h){
BufferedImage bi = new BufferedImage(w,h,
BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(image,0,0,w,h,null);
bos = new BufferedOutputStream(new FileOutputStream(
upliadFile));
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(bi);
System.out.println(width * height);
}else{
bos = new BufferedOutputStream(new FileOutputStream(upliadFile));
byte[] date = new byte[5*1024];
int len = bis.read(date);
while (len!=-1){
bos.write(date);
len = bis.read(date);
}
}
}
return actionMapping.findForward("ok");
}catch(Exception e){
e.printStackTrace();
} finally {
try {
if (bis != null)
bis.close();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
if (bos != null)
bos.close();
} catch (IOException e2) {
e2.printStackTrace();
}
}
return actionMapping.findForward("ok");
}
}
已經(jīng)很久沒(méi)有寫(xiě)東西了,究其原因:
一則是因?yàn)槿鄙倭藢?xiě)東西的必要?jiǎng)訖C(jī),
二則是隨著年齡增加,咬文嚼字,賣(mài)弄文筆,吹噓裝B的功力已大不如以前,通常硬要坐在電腦前寫(xiě)東西時(shí),腦海中總會(huì)下意識(shí)的浮現(xiàn)出中學(xué)時(shí)代每個(gè)星期四的下午..
三則自從拜倒在JAVA石榴裙下后,對(duì)中文文字的敏感度已經(jīng)退化到近似文盲的階段,所以只能在嘈雜的互聯(lián)網(wǎng)上辟出一塊自留地,以便自己發(fā)泄,好歹有"木子美""流氓燕"之流墊低,自然也放松許多.
作為Blog的"開(kāi)篇"自然要給它定一個(gè)基調(diào),免的淪為靠公布自己的隱私博人一看的藏污納垢之地,
思來(lái)想去將JAVA開(kāi)發(fā)途中的遇到的問(wèn)題以及解決方案和對(duì)新技術(shù)的理解,作為基調(diào)再何時(shí)不過(guò),其中穿插進(jìn)日常生活的影子也只是給枯燥的編程生活一些調(diào)劑,何樂(lè)而不為?!
let's go~~~~