读书人

helma下传图片示例

发布时间: 2012-11-22 00:16:41 作者: rapoo

helma上传图片示例
Helma中上传图片示例我在这里写了三个文件:
在运行文件时,要从2开始运行
1imageUploadForm.hsp文件:

<FORM METHOD="POST" ACTION="imageUpload" ENCTYPE="multipart/form-data"><INPUT TYPE="FILE" NAME="rawimage">& <INPUT TYPE="SUBMIT" VALUE="save"></FORM>

2imageUpload.hac文件:
this.imageUploadForm();//加载一个页面,前端上传图片的页面var rawimage = req.get("rawimage");//通过request获取上传文件的对象。是helma.util.MimePart类型if (req.get("uploadError")) {//判断上传文件是否过大。第一次加载上传页面时是不会有此属性的。因此页面中没有设置  res.write("<H2>上传文件太大</H2>");} else if (rawimage) {//如果有这个对象  if (rawimage.contentLength == 0) {    // 没有上载    res.write("<H2>没有上传任何东西</H2>");  } else {    var imgParams = new HopObject();    imgParams.name = "testbild";//设置图片名字    imgParams.saveTo = "D:/";//设置图片保存路径    imgParams.maxWidth = 800;//设置最大的宽度    imgParams.maxHeight = 600;//设置最大的高度    //将要上传的这个图片及参数传给保存方法,用此saveImg方法进行了上传    var result = this.saveImg(rawimage,imgParams);//结果中存放了我们设置的参数    // 判断上传过程是否有错    if (result.error) {      // 保存或调整图片出错时,输出错误信息      res.write("<H2>" + result.errorMsg + "</H2>");    } else {      //文件上传成功,我们查看结果      for (var i in result)    res.write(i + ": " + result[i] + "<BR>");  } }}

3function.js文件,主要使用这个文件中的saveImage()函数:
function saveImg(rawimage,imgParams) {//保存图片的函数 if (rawimage && (!rawimage.contentType ||rawimage.contentType.indexOf("image/") < 0)) {//如果上传文件的类型不为image类型  //用户不能上传,因为不是图片文件  imgParams.error = true;  imgParams.errorMsg = "上传不是图片"; } else {  //判断图片的文件类型 (通过检查mimetype也可以做到这一点)  imgParams.type =rawimage.name.substring(rawimage.name.lastIndexOf(".") + 1);//取得文件后缀名  var img = new Image(rawimage.getContent());//获取图片文件  //检查是否对图片进行必要的调整   if (imgParams.maxWidth && imgParams.maxHeight && img.width >imgParams.maxWidth && img.height > imgParams.maxHeight) {//如果图片大于设置的最大高度和宽度   var hfact = imgParams.maxWidth / img.width;//宽度   var vfact = imgParams.maxHeight / img.height;//高度   imgParams.width = Math.round(img.width * (hfact < vfact ? hfact :vfact));   imgParams.height = Math.round(img.height * (hfact < vfact ? hfact :vfact));   var doResize = true;  } else if (imgParams.maxWidth && img.width > imgParams.maxWidth) {//只有宽度大,就只调整宽度   var fact = imgParams.maxWidth / img.width;   imgParams.width = imgParams.maxWidth;   imgParams.height = Math.round(img.height * fact);   var doResize = true;  } else if (imgParams.maxHeight && img.height > imgParams.maxHeight) {//只有高度大,就只调高度   var fact = imgParams.maxHeight / img.height;   imgParams.height = imgParams.maxHeight;   imgParams.width = Math.round(img.width * fact);   var doResize = true;  }  if (doResize) {   img.resize(imgParams.width,imgParams.height);//重新设置图片的大小   if (rawimage.contentType == 'image/gif') {//对JIF文件动画文件进行设置    img.reduceColors(256);   }  }  img.saveAs(imgParams.saveTo + imgParams.name + "." + imgParams.type);//保存图片 } return (imgParams);//将图片存储信息返回}

读书人网 >Web前端

热点推荐