需要在Asp.net中使用XMLHttpRequest发送数据和文件 [英] Need to send datas and file using XMLHttpRequest in Asp.net

查看:74
本文介绍了需要在Asp.net中使用XMLHttpRequest发送数据和文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

亲爱的专家,



我正在做一个ASP.Net项目,我需要发送一些数据并通过javascript发布表单数据到webservice .... br />


以下是javascript的代码。





  function  startUploading(){


// 获取POST的表单数据
// var vFD = document.getElementById('form-student-profile')。getFormData(); // for FF3
var vFD = new FormData( document .getElementById(' form-student-profile') );

// 创建XMLHttpRequest对象,添加一些事件监听器,并发布我们的数据
var oXHR = new XMLHttpRequest();
oXHR.upload.addEventListener(' progress',uploadProgress,);
oXHR.addEventListener(' load',uploadFinish,);
oXHR.addEventListener(' error',uploadError,);
oXHR.addEventListener(' abort',uploadAbort,);
oXHR.open(' POST' ' ../../ Webservice.asmx / Img_Upload');
oXHR.send(vFD);

// set inner timer
oTimer = setInterval(doInnerUpdates , 300 );

}





这是WebService中的代码



 [WebMethod] 
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Img_Upload()
{
HttpContext postedContext = HttpContext.Current;
HttpPostedFile file = postingContext.Request.Files [ 0 ];

string name = file.FileName;
byte [] binaryWriteArray = new
字节 [file.InputStream.Length];
file.InputStream.Read(binaryWriteArray, 0
int )文件.InputStream.Length);

FileInfo file_Info = new FileInfo(file.FileName);
string ext = file_Info.Extension;


string file_Name = Guid.NewGuid()。ToString()+ _ + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ext;

FileStream objfilestream = new FileStream(Server.MapPath( img // profilePIC // + file_Name),FileMode.Create,FileAccess.ReadWrite);
objfilestream.Write(binaryWriteArray, 0
binaryWriteArray.Length);
objfilestream.Close();

SetVal.Profile_PIC = file_Name;


}





在这里,我可以成功获取图像文件,我需要从该javascript函数获得更多的字符串数据到这个Webservice函数....



有没有任何方法来获取文件和数据.. ??



请帮帮我..



谢谢和问候,



Dileep

解决方案

我发现你的问题寻找一些与我非常相似的帮助。

你可以很容易为你的POST添加更多的值。



在你的javascript中你可以简单地添加:

 vFD。 append(  key1 < span class =code-string> somevalue); 





和代码隐藏:

  string   value  = postingContext.Request [  key1]; 


Dear Experts,

I am doing an ASP.Net project, I need to send some datas and post form data through javascript to webservice....

Here is the below code of javascript.


function startUploading() {

   
        // get form data for POSTing
        //var vFD = document.getElementById('form-student-profile').getFormData(); // for FF3
        var vFD = new FormData(document.getElementById('form-student-profile'));

        // create XMLHttpRequest object, adding few event listeners, and POSTing our data
        var oXHR = new XMLHttpRequest();
        oXHR.upload.addEventListener('progress', uploadProgress, false);
        oXHR.addEventListener('load', uploadFinish, false);
        oXHR.addEventListener('error', uploadError, false);
        oXHR.addEventListener('abort', uploadAbort, false);
        oXHR.open('POST','../../Webservice.asmx/Img_Upload');
        oXHR.send(vFD);

       // set inner timer
        oTimer = setInterval(doInnerUpdates, 300);
    
}



Here is the code in WebService

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Img_Upload()
{
    HttpContext postedContext = HttpContext.Current;
    HttpPostedFile file = postedContext.Request.Files[0];

    string name = file.FileName;
    byte[] binaryWriteArray = new
    byte[file.InputStream.Length];
    file.InputStream.Read(binaryWriteArray, 0,
    (int)file.InputStream.Length);

    FileInfo file_Info = new FileInfo(file.FileName);
    string ext = file_Info.Extension;


    string file_Name = Guid.NewGuid().ToString() + "_" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year + ext;

    FileStream objfilestream = new FileStream(Server.MapPath("img//profilePIC//" + file_Name), FileMode.Create, FileAccess.ReadWrite);
    objfilestream.Write(binaryWriteArray, 0,
    binaryWriteArray.Length);
    objfilestream.Close();

    SetVal.Profile_PIC = file_Name;


}



Here i can get the image file sucessfully, and i need to get some more string datas from that javascript function to this Webservice function....

Is there any method to get the file and datas ..??

please Help me..

Thanks and regards,

Dileep

解决方案

I found your question looking for some help myself with something very similar.
You can easily add some more values to your POST.

In you javascript you can simply add:

vFD.append("key1", "somevalue");



and in the codebehind:

string value = postedContext.Request["key1"];


这篇关于需要在Asp.net中使用XMLHttpRequest发送数据和文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆