如何使用javascript从html页面上传blob图像到c#代码

本文关键字:blob 图像 代码 javascript 何使用 html | 更新日期: 2023-09-27 18:08:29

现在我有这个代码,

在我的html页面,在表单上我有这个:

<input type="file" id="txtUploadFile" accept="image/*" onchange="changetext();"/>

我使用javascript在我的doUpload()函数上上传图片

function doUpload() {
    var srwebserviceURL = "/Webservices/Facilities/ServiceRequest.asmx";
    var sMsgBody = "<filePath>" + txtUploadFile.value + "</filePath>";
    var a = sendSoapMsg(srwebserviceURL, "SaveSRLogoPhotoSite", sMsgBody, "SaveSRLogoPhotoSiteResult");
}
因此,从上面的代码中可以看到,我将照片的文件路径传递给了我的webservice。

在我的webservice, SaveSRLogoPhotoSite,我有ff。代码:

public SRLogoPhoto SaveSRLogoPhotoSite(string filePath)
{
    DataSet ds = null;
    Hashtable param = new Hashtable();
    SRLogoPhoto srlp = new SRLogoPhoto();
    try
    {
        System.IO.FileStream fs = new System.IO.FileStream(filePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        Byte[] b = new Byte[fs.Length];
        fs.Read(b, 0, b.Length);
        fs.Close();
        SqlParameter P = new SqlParameter("@Picture", SqlDbType.VarBinary, b.Length, ParameterDirection.Input, false, 0, 0, null, DataRowVersion.Current, b);
        string sqlStr = "UPDATE SRSiteLogo SET srImage = @Picture ";
        param.Add("Picture", P);
        ds = dbHelper.GetDataSet(sqlStr, param);
    }
    catch (Exception ex)
    {
        srlp.Error = "SaveSRLogoPhotoSite() web method failed on call to dbHelper.GetDataSet - " + ex.Message;
    }
    return srlp;
}

这在我的本地pc上工作。但是,当我将它部署到我的pc以外的环境时,它似乎不起作用。当我尝试在soapUI中调试时,它说它找不到文件路径

似乎我应该在我的webservice上传递的文件路径应该首先在服务器上,而不是它所在pc的当前文件系统的文件路径。

我该怎么做?

edit—我被告知这是可能使用ajax..我是ajax的新手,不知道怎么做。

提前感谢

如何使用javascript从html页面上传blob图像到c#代码


当您在本地运行web时,需要上传的文件和服务器位于一台机器上,因此您可以确定文件路径并执行上传任务。但是,当您将web部署到另一台服务器时,您无法确定路径文件。您必须将文件转换为流并发送到服务器,读取流,转换为预期格式,然后继续。谢谢。