jquery ajax 上传图片
场景:用jQuery Ajax 上传图片显示“上传失败,异常信息:SyntaxError:语法异常
求助:用jQuery Ajax 上传图片显示“上传失败,错误信息:SyntaxError:语法错误
问题,如标题所述,有时显示“上传失败,错误信息:SyntaxError:拒绝访问”.
代码如下:(HTML页)
<script type="text/javascript" src="../js/singleupload.js"></script>
<script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../js/jquery.validate.min.js"></script>
<asp:TextBox ID="txtImgUrl" runat="server" CssClass="input w380 left"></asp:TextBox>
<a href="javascript:void(0);" class="files"><input type="file" id="FileUpload" name="FileUpload" /></a>
<span class="uploading">正在上传,请稍候...</span>
(singleupload.js页)
$(function() {
$("#FileUpload").bind("change", function() {
//开始提交
$("#form1").ajaxSubmit({
beforeSubmit: function(formData, jqForm, options){
//隐藏上传按钮
$(".files").hide();
//显示LOADING图片
$(".uploading").show();
},
success: function(data, textStatus) {
if (data.msg == 1) {
$("#txtImgUrl").val(data.msbox);
} else {
alert(data.msbox);
}
$(".files").show();
$(".uploading").hide();
},
error: function(data, status, e) {
alert("上传失败,错误信息:" + e);
$(".files").show();
$(".uploading").hide();
},
url: "../../Tools/SingleUpload.ashx",
type: "post",
dataType: "json",
timeout: 600000
});
});
});
(SingleUpload.ashx 页)
namespace SingleUpload
{
/// <summary>
/// AJAX单文件上传页
/// </summary>
public class SingleUpload : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
//检查是否登录后上传操作
if (context.Session["UserId"] == null)
{
context.Response.Write("{msg: 0, msbox: \"请登录后再进行上传文件!\"}");
return;
}
HttpPostedFile _upfile = context.Request.Files["FileUpload"];
string _delfile = context.Request.Params["txtImgUrl"];
if (_upfile == null)
{
context.Response.Write("{msg: 0, msbox: \"请选择要上传文件!\"}");
return;
}
UpLoad upFiles = new UpLoad();
string msg = upFiles.fileSaveAs(_upfile, 0);
//删除已存在的旧文件
if (!string.IsNullOrEmpty(_delfile))
{
string _filename = HttpContext.Current.Server.MapPath(_delfile);
if (File.Exists(_filename))
{
File.Delete(_filename);
}
}
//返回成功信息
context.Response.Write(msg);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
------解决方案--------------------
需要逻辑值0或非0值Macro argument. syntax error 宏参数语法错误. Macro expansion
Syntax error
语句的语法与任何可识别的语法不匹配
jquery中语法有问题
------解决方案--------------------
是偶尔出错还是一直出错?
这个调试应该可以跟踪到问题。
比较麻烦的话我觉得JQuery的有些上传控件可以使用,如Uploadify
------解决方案--------------------
你检查下 url: "../../Tools/SingleUpload.ashx"路径对不对估计你这路径错了,不能找到SingleUpload.ashx这个文件,Tools如果在根目录下直接写/Tools/SingleUpload.ashx
------解决方案--------------------
求助:用jQuery Ajax 上传图片显示“上传失败,错误信息:SyntaxError:语法错误
问题,如标题所述,有时显示“上传失败,错误信息:SyntaxError:拒绝访问”.
代码如下:(HTML页)
<script type="text/javascript" src="../js/singleupload.js"></script>
<script type="text/javascript" src="../js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="../js/jquery.validate.min.js"></script>
<asp:TextBox ID="txtImgUrl" runat="server" CssClass="input w380 left"></asp:TextBox>
<a href="javascript:void(0);" class="files"><input type="file" id="FileUpload" name="FileUpload" /></a>
<span class="uploading">正在上传,请稍候...</span>
(singleupload.js页)
$(function() {
$("#FileUpload").bind("change", function() {
//开始提交
$("#form1").ajaxSubmit({
beforeSubmit: function(formData, jqForm, options){
//隐藏上传按钮
$(".files").hide();
//显示LOADING图片
$(".uploading").show();
},
success: function(data, textStatus) {
if (data.msg == 1) {
$("#txtImgUrl").val(data.msbox);
} else {
alert(data.msbox);
}
$(".files").show();
$(".uploading").hide();
},
error: function(data, status, e) {
alert("上传失败,错误信息:" + e);
$(".files").show();
$(".uploading").hide();
},
url: "../../Tools/SingleUpload.ashx",
type: "post",
dataType: "json",
timeout: 600000
});
});
});
(SingleUpload.ashx 页)
namespace SingleUpload
{
/// <summary>
/// AJAX单文件上传页
/// </summary>
public class SingleUpload : IHttpHandler, IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
//检查是否登录后上传操作
if (context.Session["UserId"] == null)
{
context.Response.Write("{msg: 0, msbox: \"请登录后再进行上传文件!\"}");
return;
}
HttpPostedFile _upfile = context.Request.Files["FileUpload"];
string _delfile = context.Request.Params["txtImgUrl"];
if (_upfile == null)
{
context.Response.Write("{msg: 0, msbox: \"请选择要上传文件!\"}");
return;
}
UpLoad upFiles = new UpLoad();
string msg = upFiles.fileSaveAs(_upfile, 0);
//删除已存在的旧文件
if (!string.IsNullOrEmpty(_delfile))
{
string _filename = HttpContext.Current.Server.MapPath(_delfile);
if (File.Exists(_filename))
{
File.Delete(_filename);
}
}
//返回成功信息
context.Response.Write(msg);
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
------解决方案--------------------
需要逻辑值0或非0值Macro argument. syntax error 宏参数语法错误. Macro expansion
Syntax error
语句的语法与任何可识别的语法不匹配
jquery中语法有问题
------解决方案--------------------
是偶尔出错还是一直出错?
这个调试应该可以跟踪到问题。
比较麻烦的话我觉得JQuery的有些上传控件可以使用,如Uploadify
------解决方案--------------------
你检查下 url: "../../Tools/SingleUpload.ashx"路径对不对估计你这路径错了,不能找到SingleUpload.ashx这个文件,Tools如果在根目录下直接写/Tools/SingleUpload.ashx
------解决方案--------------------
- HTML code
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Uploadify</title> <link href="JS/jquery.uploadify-v2.1.0/example/css/default.css" rel="stylesheet" type="text/css" /> <link href="JS/jquery.uploadify-v2.1.0/uploadify.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/swfobject.js"></script> <script type="text/javascript" src="JS/jquery.uploadify-v2.1.0/jquery.uploadify.v2.1.0.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("#uploadify").uploadify({ 'uploader': 'JS/jquery.uploadify-v2.1.0/uploadify.swf', 'script': 'UploadHandler.ashx', 'cancelImg': 'JS/jquery.uploadify-v2.1.0/cancel.png', 'folder': 'UploadFile', 'queueID': 'fileQueue', 'auto': false, 'multi': true }); }); </script> </head> <body> <div id="fileQueue"></div> <input type="file" name="uploadify" id="uploadify" /> <p> <a href="javascript:$('#uploadify').uploadifyUpload()">上传</a>| <a href="javascript:$('#uploadify').uploadifyClearQueue()">取消上传</a> </p> </body> </html>
------解决方案--------------------
------解决方案--------------------
你写的js和代码写的是没问题的.应该是不能找到你那个url: "../../Tools/SingleUpload.ashx",刚写错了