`
cd0281
  • 浏览: 123019 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

页面发送二进制流文件到后台处理

 
阅读更多
页面
//黏贴图片
function ImgClipBoardData(evt,row){
	var position = ($(evt).prev(".menuClass").size()<=0)?'up':'down';
	var current_main_body_id = ($(evt).prev(".menuClass").size()<=0)?$(evt).next().attr("mainBodyId"):$(evt).prev(".menuClass").attr("mainBodyId");
	var img_data = "";
	if(window.clipboardData){//判断浏览器是IE
		//判断剪切板中内容是图片还是文字,如果是图片则window.clipboardData.getData("Text")取出值为空;若为文字不为空
		if(window.clipboardData.getData("Text")!=null && window.clipboardData.getData("Text")!=""){
			//$('#imgClipBoard_'+row).html(window.clipboardData.getData("Text"));
			//initWordPase();
		}else{
			var x = document.getElementById("x");
			//$('#imgClipBoard_'+row).html('<img src="data:image/png;base64,'+x.Base64String+'">'); 
			//$("#img_data").val(x.Base64String);
			img_data = x.Base64String;
			//alert("1234"+img_data);
			formsumit(img_data,position,current_main_body_id,row);
			
		}
  	}else{
 		if(evt.clipboardData.getData("Text")==null || evt.clipboardData.getData("Text")==""){
 			var clipboardData = evt.clipboardData;  
		 	var sHtml = "";
		    for(var i=0; i<clipboardData.items.length; i++){  
		        var item = clipboardData.items[i];  
		        if(item.kind=='file'&&item.type.match(/^image\//i)){  
		            //blob就是剪贴板中的二进制图片数据  
		            var blob = item.getAsFile(),reader = new FileReader();  
		            //定义fileReader读取完数据后的回调  
		            reader.onload=function(){  
		            	img_data = event.target.result;//result是base64编码后的图片
		                //var sHtml='<img src="'+img_data+'">';  
		                //$('#imgClipBoard_'+row).html(sHtml);  
		            }  
		            reader.readAsDataURL(blob);//用fileReader读取二进制图片,完成后会调用上面定义的回调函数  
		            
		        }  
		    }  
		    setTimeout(function(){
		    	formsumit(img_data,position,current_main_body_id,row);
		    },500);
 		}else{
		 	
	    }
    }
}
//保存图片信息
function formsumit(img_data,position,current_main_body_id,row){alert(img_data)
	console.log(img_data);
	img_data= img_data.replace("data:image/png;base64,","");
	var num = img_data / 600000;
	var str = "{}";
	for(var i=1;i<=num;i++){
		str["img_data"+i]=img_data.substring((i-1)*600000+1,i*600000);

		}
	//img_data = window.encodeURI(window.encodeURI(img_data));
	console.log(img_data);
	var frm = $('#statusForm');
	$("#txtArea").val(img_data);
    $.ajax({
        type: "POST",
        url: "SaveImageDataServlet",
        data: img_data,
        contentType :"multipart/form-data",
        processData :false,
        success: function (data) {
        //$('#new_tweet').html(data);
        // $('#txtArea').val('');
        },
        error: function(jqXHR, textStatus, errorThrown){
        // log the error to the console
        
        }

    });
}



protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("gbk");
		String datasource_main = ApplicationUtil.getDefaultDataSource(request
				.getSession().getServletContext());System.out.print("121");
		//String server_path = RequestUtil.getRealPath(request, "");
		//----获取参数
		FileOutputStream fos=new FileOutputStream("d:\\a.png");  
		
		BASE64Decoder base64=new BASE64Decoder(); 
		byte[] buffer=base64.decodeBuffer(request.getInputStream());  
		
		fos.write(buffer);
        fos.flush();  
        fos.close();      
        fos=null;
}



对于ie的话, 不支持FileReader的,需要activex控件。
分享到:
评论

相关推荐

    二进制流形式上传图片,然后前台显示图片示例(vs2005+sql2005)

    服务器端的代码(如C#或VB.NET)会接收到文件,并读取其内容为二进制流。 三、数据库设计 在SQL2005中,可以使用`VARBINARY(MAX)`或`IMAGE`(已被弃用)数据类型来存储二进制流。创建一个包含图片ID、图片名称和...

    php基础教程文件以二进制形式上传并放入数据库

    ### PHP基础教程:文件以二进制形式上传并放入...综上所述,通过PHP实现文件的二进制上传并存入数据库涉及多个步骤,从环境配置、用户界面设计到后台处理与数据存储,每一步都需精心设计以确保功能完善且安全可靠。

    haproxy-2.8.0.tar.gz 二进制安装包,解压放置服务运行即可

    haproxy-2.8.0.tar.gz 是一个用于Linux环境的Haproxy二进制安装包,适用于CentOS 7.9操作系统。Haproxy是一款高性能、高可用的负载均衡器,它能够处理大量的网络连接,广泛应用于Web服务器集群的流量管理和故障切换...

    struts+hibernate实现文件上传、下载,以二进制存于数据库

    在这个项目中,我们创建一个特定的Struts Action,该Action接收到上传请求后,将文件数据读取并转化为二进制流。接着,使用Hibernate ORM框架与数据库进行交互。Hibernate允许我们定义实体类,映射到数据库表,通过...

    WEB页面,一个上传Excel文件并将内容保存到数据库中

    用户选择文件后,可以利用FormData对象将文件以二进制形式发送到服务器。在JavaScript中,这可能涉及AJAX或Fetch API的使用,确保异步地发送请求,保持页面的响应性。 其次,服务器端的处理至关重要。在这个项目中...

    java实现本地读取图片存储到数据库中并在html网页显示

    在Java中,我们可以使用`java.io`和`java.nio`包中的类来读取和处理二进制文件。 1. **读取本地图片**: 使用`java.io.FileInputStream`或`java.nio.file.Files`可以读取本地图片文件。例如,通过以下代码片段,...

    asp文件上传组件(是用于网站后台开发)

    2. 表单提交时,文件数据会被转换成二进制流,与其他表单数据一起发送到服务器。 3. ASP文件上传组件捕获这个请求,解析出文件数据。 4. 组件将文件保存到服务器指定的目录,并可能执行一些验证操作,如检查文件类型...

    文件上传与大字段处理

    本篇将深入探讨文件上传的机制、大字段处理策略以及Blob二进制数据的处理。 文件上传: 1. **HTTP协议与文件上传**:在Web应用中,文件上传主要通过HTTP或HTTPS协议实现。HTTP协议规定了POST请求用于提交数据,...

    图片/文件批量上传+后台controller

    如果一切符合要求,文件会被转化为二进制数据或者使用FormData对象进行封装,准备通过Ajax或者Fetch API发送到后台服务器。 接下来,我们关注后台控制器的部分。后台控制器,通常用Java的Spring MVC、Python的...

    文件上传和ajax获取json的小示例

    虽然数据库通常不用于存储大量二进制数据,如图片,但在某些情况下,存储文件的元信息(如文件名、类型、路径等)可以方便管理和检索。在数据库中存储这些信息后,可以通过查询来获取相关文件。 接下来,我们关注...

    不同Excle表格后台合并输出到页面的Excle

    - 在服务器端合并完成后,将新生成的Excel文件内容转换为NTKO支持的格式,如二进制流或者Base64编码。 - 在前端页面,通过NTKO控件的API加载这个数据,展示给用户。用户可以查看、编辑甚至保存这个合并后的Excel...

    javaweb和EasyUI读取txt内容生成excel

    7. **AJAX通信**:前端使用EasyUI的Ajax功能与后台进行异步通信,当用户触发生成Excel的请求时,前端会发送一个Ajax请求到后台Servlet,Servlet处理请求后将Excel文件以二进制流的形式返回。 8. **前端响应处理**:...

    h5 web录音并上传后端

    在这个示例中,使用Ajax的`XMLHttpRequest`或者更现代的`fetch` API,将录制的音频文件以二进制形式发送到服务器。这通常涉及到设置合适的HTTP请求头,如`Content-Type`为`audio/webm`或`audio/wav`,取决于录音的...

    ajax上传文件案例

    我们可以将用户选择的文件添加到FormData对象中,然后在AJAX请求中设置`xhr.send(formData)`,这样就能发送二进制文件数据。 4. **进度反馈**:ajaxfileupload通常也支持文件上传进度的显示。通过监听AJAX事件,...

    关于微信小程序获取小程序码并接受buffer流保存为图片的方法

    2. **处理响应**:发送请求后,微信会返回一个包含小程序码的二进制流(Buffer流)。由于浏览器或前端无法直接处理这种数据流,你需要在服务器端将其转化为可存储的格式。在上述代码中,`GetResponseStream()`方法...

    asp文件上传的示例程序

    在后台,ASP脚本会接收这个文件,并将其存储在服务器的特定目录或者以二进制数据的形式存储到数据库中。知识点包括:`&lt;input type="file"&gt;`标签用于选择文件,`POST`请求用于发送文件数据,以及使用ASP的`Request`...

    一个基于C# 实现的image 保存到数据库与从后台检索出来的程序例子

    它首先执行SQL查询(可能是SELECT语句)来获取图片的二进制数据,然后设置响应的MIME类型(通常是`image/jpeg`或`image/png`),并将二进制数据作为HTTP响应流发送给客户端。`showimg.aspx.cs` 文件会包含处理此逻辑...

    vue博客后台管理系统

    Vue博客后台管理系统可能使用了 axios 或者 fetch 等HTTP库来发送文件请求,配合使用FormData对象,将文件以二进制形式发送到服务器。同时,为了提供良好的用户体验,系统可能还实现了上传进度的实时显示,以及错误...

    前端图片压缩base64后台还原图片

    在现代Web应用中,图像处理是一项重要的任务,尤其是在前端领域,因为大图片会显著增加页面加载时间,影响用户体验。本文将深入探讨“前端图片压缩base64”这一主题,以及如何在后台还原这些压缩后的图片。 一、...

    jsp+jspsmartupload控件上传图片至数据库

    - 创建一个javabean实例来封装文件信息,并将二进制流保存在javabean中。 - 连接SQL Server 2005数据库,执行SQL语句将图片数据插入到指定的BLOB字段。 - 保存成功后,Servlet返回响应信息给JSP页面,显示上传...

Global site tag (gtag.js) - Google Analytics