Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用带有ashx处理程序的uploadify_C#_Asp.net_Ajax - Fatal编程技术网

C# 使用带有ashx处理程序的uploadify

C# 使用带有ashx处理程序的uploadify,c#,asp.net,ajax,C#,Asp.net,Ajax,嗨,朋友们,我有一个表格,里面有一些文本框、下拉列表和图片。我正在使用敲出js保存表单详细信息。我使用uploadify插件将我的图像上传到本地文件夹。我已经实现了所有这些功能,但在保存这些值时,我使用了一个aspx代码。为了上传,我们必须选择ashx。所以这就像两个服务器端的帖子即将发生一样 所以我想把我的数据保存在ashx页面而不是aspx 但我不知道从哪里开始我的上传…请有人帮我这个 我在保存按钮事件中保存我的值,如下 self.AddEvent = function (args

嗨,朋友们,我有一个表格,里面有一些文本框、下拉列表和图片。我正在使用敲出js保存表单详细信息。我使用uploadify插件将我的图像上传到本地文件夹。我已经实现了所有这些功能,但在保存这些值时,我使用了一个aspx代码。为了上传,我们必须选择ashx。所以这就像两个服务器端的帖子即将发生一样

所以我想把我的数据保存在ashx页面而不是aspx

但我不知道从哪里开始我的上传…请有人帮我这个

我在保存按钮事件中保存我的值,如下

     self.AddEvent = function (args) {          

       // Here--> $('#file_upload').uploadify('upload');

                    ajax.Post("../Scripts/uploadify/UploadHandler.ashx", JSON.stringify({ objEnt: args }), false).success(function (data) {   

                    if (data.d[0] > 0) {
        // or Here-->            $('#file_upload').uploadify('upload');
                    alert('success');
                  }
我的文件上传设置是:

   $('#file_upload').uploadify({
                'swf': '../Scripts/uploadify/uploadify.swf',
                'uploader': '../Scripts/uploadify/UploadHandler.ashx',
                'method': 'post',
                'formData': { 'someKey': Filename },
                'buttonText': 'Browse',
                'auto': false,
                'folder': 'upload',

                'fileTypeExts': '*.jpg;*.jpeg;*.gif;*.png',
                'onSelect': function (file) {
                    var ext = file.name.split('.').pop();
                    $("#filename").val(Filename + '.' + ext);
                },
                'onUploadSuccess': function (file, data, response) {

                    if (response == true) {

                       $("#eventGrid").jqxGrid('updatebounddata');



                    }

                }

            });
在我的情况下,不可能在“onUploadsuccess”中调用self.AddEvent。。。!!! 请给我建议一些在ashx处理程序中同时存储数据和图像的最佳方法

ashx:

public void ProcessRequest(HttpContext上下文)
{
context.Response.ContentType=“应用程序/json”;
var data=context.Request;
var sr=新的StreamReader(data.InputStream);
var stream=sr.ReadToEnd();
var javaScriptSerializer=新的javaScriptSerializer();
var asd=javaScriptSerializer.Deserialize(流);
字符串Newname=context.Request.Form[“someKey”];
BAL Bl=新的BAL();
字符串[]args=新字符串[2];
//AddEvent方法将我的数据添加到数据库添加返回响应“成功”//
args=AddEvent(asd.objEnt);
HttpPostedFile PostedFile=context.Request.Files[“Filedata”];
字符串ext=Path.GetExtension(PostedFile.FileName);
字符串savepath=“”;
字符串temppath=“”;
temppath=System.Configuration.ConfigurationManager.AppSettings[“FolderPath”];
savepath=context.Server.MapPath(temppath);
字符串fileName=Newname+ext;
如果(!Directory.Exists(savepath))
CreateDirectory(保存路径);
SaveAs(savepath+@“\”+文件名);
context.Response.Write(temppath+“/”+文件名);
//context.Response.Write(args);
context.Response.StatusCode=200;
}
}
$(“#”)上传({
“uploader”:“Upload.ashx”,
'swf':'uploadify/uploadify.swf',
'script':'Upload.ashx',
'cancelImg':'images/cancel.png',
'文件夹':'../Upload',
"多":对,,
'按钮文字':'选择图片',
“fileExt”:“*.jpg;*.png;*.gif;*.bmp;*.jpeg”,
“自动”:false,
“onUploadStart”:函数(){
}
});
$.ajax({
类型:“POST”,
url:'WebServiceAdmin.asmx/SaveData',
数据:“{'p':'”+datam+“}”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:函数(d){$('#FileUpload1').uploadify('upload','*');},
错误:函数(){}
});

您可以这样使用它,如果成功,首先加载所有图像,然后在uplodify中的成功中,进行另一个ajax调用,该调用保存了数据,但告诉我一件事,我如何获得ashx处理程序响应的返回值??我知道context.response.write(args)将在控制台中写入。但是我怎样才能在ajax成功中获得回报呢?我感谢你的帮助!!任何示例链接都将非常有用!!你的意思是在“onUploadSuccess”中,我必须发出一个ashx处理程序请求?使用此ashx将调用两次,对吗。。?一个在发布的时候,第二个在上传图片的时候..关于Ajax的成功功能,我怎么能得到ashx的响应,在你的情况下是'd'。。??查看我的代码中的参数!!!根据回复,我必须做其他事情,你可以检查上传文件。应该是另一个触发所有更新完成的事件。好的。也许你csn使用cooki。在ashx内创建一个cpokie,稍后从客户端获取,
  public void ProcessRequest(HttpContext context)
{

    context.Response.ContentType = "application/json";
    var data = context.Request;
    var sr = new StreamReader(data.InputStream);
    var stream = sr.ReadToEnd();
    var javaScriptSerializer = new JavaScriptSerializer();
    var asd = javaScriptSerializer.Deserialize<RootObject>(stream);
    string Newname = context.Request.Form["someKey"];
    BAL Bl = new BAL();

    string[] args = new string[2];
   //AddEvent method will add my data into database add return response "Success"//
    args = AddEvent(asd.objEnt);

        HttpPostedFile PostedFile = context.Request.Files["Filedata"];

            string ext = Path.GetExtension(PostedFile.FileName);
            string savepath = "";
            string temppath = "";
            temppath = System.Configuration.ConfigurationManager.AppSettings["FolderPath"];
            savepath = context.Server.MapPath(temppath);
            string fileName = Newname + ext;
            if (!Directory.Exists(savepath))
                Directory.CreateDirectory(savepath);

            PostedFile.SaveAs(savepath + @"\" + fileName);

            context.Response.Write(temppath + "/" + fileName);
           // context.Response.Write(args);

            context.Response.StatusCode = 200;

        }
    }
 $("#<%=FileUpload1.ClientID%>").uploadify({
            'uploader': 'Upload.ashx',
            'swf': 'uploadify/uploadify.swf',
            'script': 'Upload.ashx',
            'cancelImg': 'images/cancel.png',
            'folder': '../Upload',
            'multi': true,
            'buttonText': 'select picture',
            'fileExt': '*.jpg;*.png;*.gif;*.bmp;*.jpeg',
            'auto': false,
            'onUploadStart': function () {


            }
        });


$.ajax({
            type: "POST",
            url: 'WebServiceAdmin.asmx/SaveData',
            data: "{'p':'" + datam+ "'}",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (d) { $('#FileUpload1').uploadify('upload', '*');  },
            error: function () {  }
        });