在使用ajaxfileupload组件中,能上传图片了,但是碰到了个问题:从本地选择一张图片上传后,在input标签中没有显示该图片的路径,调了很久都没出来。。。
怎么搞,现在项目一定要显示上传图片的本地路径。。。
代码:
$.ajaxFileUpload({
url:'http://127.0.0.1:8090/publicInfoUploadImgTopic', //需要链接到服务器地址
secureuri:false,
fileElementId:'newsImgFile', //文件选择框的id属性
dataType: 'json', //服务器返回的格式,可以是json
success: function (data, textStatus) { //相当于java中try语句块的用法
//[{isSuccess:true|false,serverPath:XXXXX}]
alert("上传图片成功!");
//$('#imgPath').val(data[0].serverPath);
//alert($('#imgPath').val());
},
error: function (data, status, e) { //相当于java中catch语句块的用法
$('#imgPath').val('');
}
});
问题补充:<%@ page contentType="text/html; charset=GBK" %>
<html>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<script language="javascript" src="common/jquery/jquery.js"></script>
<script language="javascript" src="common/jquery/ajaxfileupload.js"></script>
<script>
var jq = jQuery.noConflict();
function uploadImage(obj) {
if(validateImage(obj)) {
jq.ajaxFileUpload({
url:'http://127.0.0.1:8090/publicInfoUploadImgTopic', //需要链接到服务器地址
secureuri:false,
fileElementId:'newsImgFile', //文件选择框的id属性
dataType: 'json', //服务器返回的格式,可以是json
success: function (data, textStatus) { //相当于java中try语句块的用法
//[{isSuccess:true|false,serverPath:XXXXX}]
alert("上传图片成功!");
jq('#imgPath').val(data[0].serverPath);
},
error: function (data, status, e) { //相当于java中catch语句块的用法
jq('#imgPath').val('');
}
//,timeout:1000*60
});
}
}
// jq(document).ready(function() {
// jq("#imgFile").uploadify({
// 'uploader': 'JS/jquery.uploadify-v2.1.0/uploadify.swf',
// 'script': 'http://127.0.0.1:8090/publicInfoUploadImgTopic',
// 'cancelImg': 'JS/jquery.uploadify-v2.1.0/cancel.png',
// 'folder': 'UploadFile',
// 'queueID': 'fileQueue',
// 'buttonClass' : '',
// 'auto': false,
// 'multi': false,
// 'buttonText': '上传',
// 'onInit':function(){alert("1");},
// 'onSelect': function(e, queueId, fileObj)
// {
// alert("唯一标识:" + queueId + "\r\n" +
// "文件名:" + fileObj.name + "\r\n" +
// "文件大小:" + fileObj.size + "\r\n" +
// "创建时间:" + fileObj.creationDate + "\r\n" +
// "最后修改时间:" + fileObj.modificationDate + "\r\n" +
// "文件类型:" + fileObj.type
// );
// }
// });
// });
//校验图片格式及大小 Add Date 2012-6-14 LIUYI
function validateImage(obj) {
var file = obj;
var tmpFileValue = file.value;
//校验图片格式
if(/^.*?\.(gif|png|jpg|jpeg|bmp)$/.test(tmpFileValue.toLowerCase())){
return true;
} else {
alert("只能上传jpg、jpeg、png、bmp或gif格式的图片!");
return false;
}
//校验图片大小,这段代码需调整浏览器安全级别(调到底级)和添加可信站点(将服务器站点添加到可信站点中)
//var imgSize = 1024 * 100; //最大100K
//var img = new Image();
if(file.value != ""){
// img.onreadystatechange = function(){
// if(img.readyState == "complete"){
// if(img.fileSize <=0 || img.fileSize > imgSize){
// alert("当前文件大小" + img.fileSize / 1024 + "KB, 超出最大限制 " + imgSize / 1024 + "KB");
// return false;
// }else{
// alert("OK");
// return true;
// }
// }
// }
// img.src = file.value;
//return true;
}else{
alert("请选择上传的文件!");
return false;
}
}
function test(obj){
uploadImage(obj);
}
</script>
<body>
<table bgcolor="" align="center"><tr><td>
<tr>
<td colspan="2" align="right">
<input type="hidden" id="imgPath" name="imgPath" />
<input type="file" class="abc" style="width:450px;display:" onchange="uploadImage(this)" id="newsImgFile" name="newsImgFile" />
<input type="file" class="abc" style="width:450px;" onclick="" id="imgFile" name="imgFile" />
</td>
</tr>
</table>
</body>
</html>
相关推荐
在本文中,我们将详细介绍如何使用Struts 2和AjaxFileUpload组件来实现在Web应用程序中进行图片的上传与预览。 一、Struts 2 框架简介 Struts 2是一个基于MVC设计模式的Action驱动的框架,它提供了强大的控制器层,...
5. **CSS样式表**:`ajaxfileupload.css`包含定义上传组件外观的CSS样式,如按钮样式、进度条样式等,用于提升用户体验。 6. **GIF动画**:`loading.gif`通常用于表示上传过程中的加载状态,向用户显示上传正在进行...
这个库的名字来源于它的核心组件——`ajaxfileupload.js`,这是一个JavaScript文件,包含了处理文件上传的核心逻辑。 在Web开发中,传统文件上传通常需要用户提交整个表单,页面会重新加载,用户体验相对较差。而...
3. **初始化组件**:在JavaScript中,实例化`AjaxFileUpload`对象,并设置回调函数以处理文件上传过程中的各种事件,例如开始上传、上传成功、上传失败等。 ```javascript var ajaxFileUpload = new AjaxFileUpload...
总的来说,`ajaxFileUpload`是一个实用的JavaScript组件,帮助开发者构建具备无刷新文件上传功能的Web应用,尤其适合那些需要在旧版浏览器中运行的项目。使用时,开发者应结合自己的需求进行适当的定制和优化。
3. 初始化组件:通过JavaScript调用AjaxFileUpload方法,并传递相关参数,如服务器端处理文件的URL、成功和失败的回调函数等。 4. 绑定事件:监听文件选择事件,触发上传操作。 四、前端文件上传技术 1. ...
AjaxFileUpload是一个基于AJAX技术的JavaScript组件,它允许用户在不刷新页面的情况下完成文件上传,提供了更好的用户体验。 这篇博客(博文链接:https://sshitaime.iteye.com/blog/2155749)可能详细解释了如何...
AjaxFileUpload组件可能已经封装了这些步骤,使得开发者只需简单配置就能在项目中使用。为了更好地利用这个组件,开发者需要了解Ajax原理,熟悉JSON或XML数据格式,以及如何在服务器端处理文件上传。此外,还需要...
1. **兼容性问题**:老版本的IE浏览器可能不支持AjaxFileUpload,可以考虑使用Flash或Silverlight的解决方案作为备选。 2. **跨域问题**:如果服务器和客户端不在同一个域下,需要配置CORS策略。 3. **文件大小...
AjaxFileUpload是一个JavaScript组件,它允许用户在不刷新整个页面的情况下上传文件,提高了用户体验。而jQuery则是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。 ### ...
**AjaxFileUpload是基于JavaScript和PHP的文件上传组件,它允许用户在不刷新整个页面的情况下进行文件上传。这个"ajaxfileupload demo php"是一个演示如何使用AjaxFileUpload的实例,展示了其基本功能和使用方法。**...
在实际应用中,AjaxFileUpload可能需要与其他前端框架(如Bootstrap、AngularJS等)或后端框架(如Laravel、Django等)结合使用,因此需要考虑兼容性和集成问题。同时,为了提高用户体验,你还可以添加额外的功能,...
在使用AjaxFileUpload进行文件上传时,可能会遇到一些常见的问题,比如“无返回结果”或者在尝试解决问题后出现“syntaxError: unexpected”的错误提示。这个情况通常与JavaScript语法错误、服务器端响应格式、...
在提供的博客链接(https://star77266989.iteye.com/blog/2183678)中,可能详细介绍了$.ajaxFileUpload的使用方法、示例代码以及常见问题的解决。由于没有直接访问链接,这里无法提供具体内容,但你可以参考这个...
AJAXFileUpload是一种基于AJAX技术的异步文件上传组件,它允许用户在不刷新页面的情况下上传文件,并且可以实时显示上传进度,提供良好的用户体验。本文将深入探讨AJAXFileUpload的工作原理、实现方式以及其在实际...
在这个场景中,我们看到与jQuery 1.7.2版本一起使用的AjaxFileUpload,表明这是一个较旧但经过验证的组合,适用于那些对浏览器兼容性有较高需求的项目。 首先,我们来详细了解一下jQuery 1.7.2。jQuery是一个流行的...
- 学习AjaxFileUpload组件:阅读文档,理解其API和使用方法。 - 实践项目:创建一个简单的文件上传页面,应用AjaxFileUpload组件。 - 调试与优化:处理可能出现的问题,如文件类型限制、大小限制等。 7. **相关...