java中ajax上传图片,JAVA图片上传

本文目录一览:

Java中如何图片异步上传

在java中要实现异步上传要提前做好准备,对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。

这个common-fileupload上传组件的jar包可以去apache官网上面下载,也可以在struts的lib文件夹下面找到,struts上传的功能就是基于这个实现的。

common-fileupload是依赖于common-io这个包的,所以还需要下载这个包。剩下的就是js文件的导入了,我导入了以下文件:

script type=”text/javascript” src=”lib/Js/jquery.js”/script

script ltype=”text/javascript” src=”/js/ajaxfileupload.js”/script

在页面中的写法:

div class=”controls”span class=”btn green fileinput-button”i class=”icon-plus icon-white”/i

span上传照片/span

input id=”fileToUpload” name=”myfiles” type=”file” onchange=”upload()” title=”上传” //span

/divfunction upload(){

$.ajaxFileUpload

(

{

url:’%=basePath%sysperson/uploadpic’,

secureuri:false,

fileElementId:’fileToUpload’,

dataType: ‘text’,

success: function (data, status)

{

document.all.mypic.src=”%=basePath%uploads/” + data;

document.all.picpath.value = data;

}, error : function(data, status, e) {

alert(e);

}

});

}

Java中如何实现Ajax方式上传图片?

你好,据我所知,Ajax不能上传图片,因为上传图片得把图片的二进制数据传送给WEB服务器。而Ajax不能完成。

如果楼主指点是无刷新上传图片。即不更改当前页面上传图片,利用STRUTS并在HTML页面中加一个iframe标签,CSS DISPLAY属性为NONE 而上传图片的表单的TARGET属性等于这个iframe的名字。

springmvc+ajax上传图片的问题。传过去的是空值.怎么接收图片??

因为SpringMVC只有GET请求才能通过方法上加参数获取到值,POST是不能通过这种方式获取的,可以通过request.getParameter(key) 或者 封装成对象(属性对应前端参数)会自动填充。

另外我记得Ajax上传文件不能直接用$.ajax这种方式传,我的方法如下:

var form = new FormData();

var xhr = new XMLHttpRequest();

xhr.open(“post”, “url”, true);

xhr.onload = function () {

alert(“上传完成!”);

};

xhr.send(form);

ajax如何 实现 文件上传

程序说明

使用说明

实例化时,第一个必要参数是file控件对象:

new QuickUpload(file);

第二个可选参数用来设置系统的默认属性,包括

属性:    默认值//说明

parameter: {},//参数对象

action:  “”,//设置action

timeout: 0,//设置超时(秒为单位)

onReady: function(){},//上传准备时执行

onFinish: function(){},//上传完成时执行

onStop:  function(){},//上传停止时执行

onTimeout: function(){}//上传超时时执行

还提供了以下方法:

upload:执行上传操作;

stop:停止上传操作;

dispose:销毁程序。

var QuickUpload = function(file, options) {

this.file = $$(file);

this._sending = false;//是否正在上传

this._timer = null;//定时器

this._iframe = null;//iframe对象

this._form = null;//form对象

this._inputs = {};//input对象

this._fFINISH = null;//完成执行函数

$$.extend(this, this._setOptions(options));

};

QuickUpload._counter = 1;

QuickUpload.prototype = {

//设置默认属性

_setOptions: function(options) {

this.options = {//默认值

action:        “”,//设置action

timeout:    0,//设置超时(秒为单位)

parameter:    {},//参数对象

onReady:    function(){},//上传准备时执行

onFinish:    function(){},//上传完成时执行

onStop:        function(){},//上传停止时执行

onTimeout:    function(){}//上传超时时执行

};

return $$.extend(this.options, options || {});

},

//上传文件

upload: function() {

//停止上一次上传

this.stop();

//没有文件返回

if ( !this.file || !this.file.value ) return;

//可能在onReady中修改相关属性所以放前面

this.onReady();

//设置iframe,form和表单控件

this._setIframe();

this._setForm();

this._setInput();

//设置超时

if ( this.timeout  0 ) {

this._timer = setTimeout( $$F.bind(this._timeout, this), this.timeout * 1000 );

}

//开始上传

this._form.submit();

this._sending = true;

},

//设置iframe

_setIframe: function() {

if ( !this._iframe ) {

//创建iframe

var iframename = “QUICKUPLOAD_” + QuickUpload._counter++,

iframe = document.createElement( $$B.ie ? “iframe name=\”” + iframename + “\”” : “iframe”);

iframe.name = iframename;

iframe.style.display = “none”;

//记录完成程序方便移除

var finish = this._fFINISH = $$F.bind(this._finish, this);

//iframe加载完后执行完成程序

if ( $$B.ie ) {

iframe.attachEvent( “onload”, finish );

} else {

iframe.onload = $$B.opera ? function(){ this.onload = finish; } : finish;

}

//插入body

var body = document.body; body.insertBefore( iframe, body.childNodes[0] );

this._iframe = iframe;

}

},

//设置form

_setForm: function() {

if ( !this._form ) {

var form = document.createElement(‘form’), file = this.file;

//设置属性

$$.extend(form, {

target: this._iframe.name, method: “post”, encoding: “multipart/form-data”

});

//设置样式

$$D.setStyle(form, {

padding: 0, margin: 0, border: 0,

backgroundColor: “transparent”, display: “inline”

});

//提交前去掉form

file.form  $$E.addEvent(file.form, “submit”, $$F.bind(this.dispose, this));

//插入form

file.parentNode.insertBefore(form, file).appendChild(file);

this._form = form;

}

//action可能会修改

this._form.action = this.action;

},

//设置input

_setInput: function() {

var form = this._form, oldInputs = this._inputs, newInputs = {}, name;

//设置input

for ( name in this.parameter ) {

var input = form[name];

if ( !input ) {

//如果没有对应input新建一个

input = document.createElement(“input”);

input.name = name; input.type = “hidden”;

form.appendChild(input);

}

input.value = this.parameter[name];

//记录当前input

newInputs[name] = input;

//删除已有记录

delete oldInputs[name];

}

//移除无用input

for ( name in oldInputs ) { form.removeChild( oldInputs[name] ); }

//保存当前input

this._inputs = newInputs;

},

//停止上传

stop: function() {

if ( this._sending ) {

this._sending = false;

clearTimeout(this._timer);

//重置iframe

if ( $$B.opera ) {//opera通过设置src会有问题

this._removeIframe();

} else {

this._iframe.src = “”;

}

this.onStop();

}

},

//销毁程序

dispose: function() {

this._sending = false;

clearTimeout(this._timer);

//清除iframe

if ( $$B.firefox ) {

setTimeout($$F.bind(this._removeIframe, this), 0);

} else {

this._removeIframe();

}

//清除form

this._removeForm();

//清除dom关联

this._inputs = this._fFINISH = this.file = null;

},

//清除iframe

_removeIframe: function() {

if ( this._iframe ) {

var iframe = this._iframe;

$$B.ie ? iframe.detachEvent( “onload”, this._fFINISH ) : ( iframe.onload = null );

document.body.removeChild(iframe); this._iframe = null;

}

},

//清除form

_removeForm: function() {

if ( this._form ) {

var form = this._form, parent = form.parentNode;

if ( parent ) {

parent.insertBefore(this.file, form); parent.removeChild(form);

}

this._form = this._inputs = null;

}

},

//超时函数

_timeout: function() {

if ( this._sending ) { this._sending = false; this.stop(); this.onTimeout(); }

},

//完成函数

_finish: function() {

if ( this._sending ) { this._sending = false; this.onFinish(this._iframe); }

}

}

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/158370.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-11-19 00:41
下一篇 2024-11-19 00:41

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Java 8 Group By 会影响排序吗?

    是的,Java 8中的Group By会对排序产生影响。本文将从多个方面探讨Group By对排序的影响。 一、Group By的概述 Group By是SQL中的一种常见操作,它…

    编程 2025-04-29

发表回复

登录后才能评论