`
wibiline
  • 浏览: 118060 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

图片上传到服务器

    博客分类:
  • jsp
阅读更多

利用控件上传文件
起初方法:直接把文件写入数据库(Oracle)。由于Oracle字段Blob的特殊性,查阅了很多资料。Dao层的代码如下:

	public void saveByBlob (Banyan banyan,FormFile fileName) throws SQLException, IOException{
		banyan.setImage(Hibernate.createBlob(new byte [1]));
		getHibernateTemplate().save(banyan);
		getHibernateTemplate().flush();
		getHibernateTemplate().update(banyan);
		getHibernateTemplate().refresh(banyan, LockMode.UPGRADE);
 
		SerializableBlob serializableBlob = (SerializableBlob) banyan.getImage();
        java.sql.Blob javablob = serializableBlob.getWrappedBlob() ;
        oracle.sql.BLOB blob = (oracle.sql.BLOB) javablob ;
        BufferedInputStream in = new BufferedInputStream(
        		fileName.getInputStream());
        BufferedOutputStream out = new BufferedOutputStream(blob
                .getBinaryOutputStream());
        
        byte [] buffer =new byte[102400];
		int len;
		buffer =new byte[102400];
		while((len=in.read(buffer))!=-1){
			out.write(buffer,0,len);
		}
		in.close();
		out.flush();
		out.close();
	}


这样的做法是,经常会碰到死锁现象,卡在那。。。不懂是什么情况。。。

成功使用方法:把文件传到服务器,然后把该文件在服务器上的地址存到数据库。又由于利用控件来操作。SmartUpload.initialize(config, request, response);涉及到config的,试了很多办法还是不懂得怎么在action或dao层进行,所以改用在servlet。其中jsp页面里要注意的是:form标签里要增加enctype="multipart/form-data"  。

public class ServletBanyanAdd extends HttpServlet {
	private ServletConfig config;

	final public void init(ServletConfig config) throws ServletException {
		this.config = config;
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub

				
		//设置图片存储命名为:urlPattern+文件名,避免重复的名字。
		String urlPattern = banyan.getBanyanId().toString()+"-";
		SmartUpload mySmartUpload = new SmartUpload();
		String fileName=null;
		try {
			mySmartUpload.initialize(config, request, response);
			mySmartUpload.upload();
			for (int i = 0; i < mySmartUpload.getFiles().getCount(); i++) {
				com.jspsmart.upload.File myfile = mySmartUpload.getFiles()
						.getFile(i);
                                                                if (StringUtil.isNotNull(myfile.getFileName())) {
					fileName = urlPattern + myfile.getFileName().toLowerCase();
					myfile.saveAs("/upload/" + fileName);
					banyan.setPicture("/bms/upload/" + fileName);
				}			}
		} catch (Exception e) {
		}
		
	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}
}

 

 判断图片格式和大小的js,页面使用方法:<html:file property="picture" onchange="return checkType('picture');"></html:file>

function checkType(fieldName)//检查图片格式以及大小的函数
{
        var string = document.all[fieldName].value;
        if(string==null||string=="")
        return true;
        else{
          string=string.toLowerCase();
          var len=string.length;
          var  suffix=string.substring(string.lastIndexOf('.'));
          //var suffix=string.substring(len-4,len);          
          if(!(suffix==".jpg"||suffix==".gif"||suffix==".png"||suffix==".bmp"))
            {
                alert("上传图片格式不对");
                //obj.focus();
                document.all[fieldName].select();
                document.execCommand('Delete');//清空上传文件空间内容
                document.all[fieldName].focus();
                return false;
            }
           var   img=new   Image();
           img.src = document.all[fieldName].value;
           if(img.fileSize/1024>1024)
            {
                alert("上传的图片超过1M");
                document.all[fieldName].select();
                document.execCommand('Delete');//清空上传文件空间内容
                document.all[fieldName].focus();
                return false;
            }

           return true;
         }
}

 

 

分享到:
评论

相关推荐

    微信小程序使用canvas绘图并且把图片上传到服务器上面.rar

    本教程将详细介绍如何在微信小程序中使用Canvas进行绘图,并将处理后的图片上传到服务器。 首先,我们需要在小程序的页面JSON配置文件中引入Canvas组件。例如: ```json { "component": true, "usingComponents...

    java图片上传到服务器以及在服务器上图片修改删除

    java图片上传到服务器以及在服务器上图片修改删除,可以从前端获取图片后端接收然后保存,还可以修改图片修改之前会删除原来的图片。

    iOS图片上传到服务器

    在iOS应用开发中,将图片上传到服务器是常见的功能需求,尤其在社交、电商或分享类应用中。本文将深入探讨如何实现这一过程,包括基本原理、所需技术以及实际操作步骤。 首先,我们需要理解基本的网络请求原理。iOS...

    多张图片上传到服务器

    在IT行业中,多张图片上传到服务器是一项常见的需求,尤其在社交媒体、电商平台或者内容管理系统等应用中。这个“多张图片上传到服务器”的项目提供了一个示例,它可以帮助开发者理解并实现这一功能。通过分析标题和...

    struts2图片上传到服务器并异步加载显示服务器中图片

    在本场景中,我们关注的是如何使用Struts2实现图片上传到服务器,并且能异步加载显示这些图片。这个过程涉及的技术点包括文件上传、服务器存储、Ajax异步请求以及前端展示。 首先,我们需要在Struts2的配置文件...

    通过base64上传图片到服务器并读取图片

    2. **图片上传到服务器** 将Base64字符串作为HTTP请求的一部分发送到服务器。通常,你可以使用Ajax或者Fetch API来实现。在请求体中,可以将Base64字符串放在JSON对象内,然后发送POST请求。 ```javascript let ...

    ASP图片上传到服务器的文件夹

    在ASP(Active Server Pages)开发中,实现图片上传到服务器的文件夹是一项常见的需求,尤其在构建交互式网站时。这个功能允许用户通过网页上传图片,然后存储在服务器的特定目录下,以便后续访问和展示。以下是实现...

    Android图片上传到服务器

    在Android应用开发中,将图片上传到服务器是常见的需求,比如用户头像更新、分享图片或者保存用户生成的内容。这个过程涉及到多个技术点,包括图片的读取、压缩、网络请求以及服务器端的处理。接下来,我们将详细...

    base64图片上传到服务器

    base64图片上传到服务器,比form表单上传方便,以string类型将图片向后台传递

    winform 图片上传到服务器端 方法

    c/s 客户端PC上传到服务器上的源代码 可以参考参考 用的是webclient

    微信小程序开发附源码:tp5实现微信小程序多图片上传到服务器功能.doc

    微信小程序开发附源码:tp5 实现微信小程序多图片上传到服务器功能 微信小程序开发中,实现多图片上传到服务器功能是一个常见的需求。_tp5框架可以满足这种需求,本文将对微信小程序的多图片上传到服务器功能进行...

    图片上传到服务器,测试代码

    这个“图片上传到服务器,测试代码”项目显然提供了实现这一功能的代码示例,重点在于支持多张图片的同时上传。它引用了AsyncHttpClient框架,这是一款异步HTTP客户端库,常用于Android和Java应用程序,以处理网络...

    PHP调用微信摄像头获取图片上传到服务器源码

    通过微信 JSD-SDK开发文档,调用微信接口获取摄像头图片上传到服务器,保存图片到本地服务器

    vue-quill-editor视频上传,图片上传到服务器模块,用video标签替换iframe

    quill视频上传,图片上传到服务器模块,用video标签替换iframe 安装教程 cnpm i vue-quill-editor cnpm i quill cnpm i quill-video-image-module 使用说明 import 'quill/dist/quill.core.css' // import styles...

    Android客户端+web服务端实现图片上传到服务器

    在本项目中,"Android客户端+web服务端实现图片上传到服务器"是一个综合性的实践案例,涵盖了移动应用开发和Web服务交互的关键技术。这个项目旨在教你如何通过Android客户端应用程序将拍摄的照片上传到服务器,然后...

    Java实现图片上传到服务器并把上传的图片读取出来

    在Java Web开发中,实现图片上传到服务器并读取的过程涉及到多个步骤,包括客户端与服务器端的交互、文件上传处理、数据库操作以及图片的显示。以下是对这一过程的详细解释: 1. **客户端与服务器端交互**: - ...

    C# WinForm 上传图片 文件到服务器的方法

    ### C# WinForm 上传图片文件到服务器的方法 在C# WinForm开发中,上传文件尤其是图片文件到服务器是一项常见的需求。本文将详细介绍如何利用C#实现这一功能,并结合提供的部分代码示例进行深入解析。 #### 一、...

    android选择图片或拍照图片上传到服务器(包括上传参数)

    最近要搞一个项目,需要上传相册和拍照的图片,不负所望,终于完成了! 不过需要说明一下,其实网上很多教程拍照的图片,都是缩略图不是很清晰,所以需要在调用照相机的时候,事先生成一个地址,用于标识拍照的图片...

    【JavaScript源代码】js实现上传图片到服务器.docx

    在JavaScript中实现图片上传到服务器的过程通常涉及到前端的文件选取、本地预览、Base64编码,以及与后端服务器的交互。以下是对这个过程的详细解析: 1. **前端文件选取**: - HTML部分提供了`...

Global site tag (gtag.js) - Google Analytics