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

标签 c# javascript html image web-services

目前我有这段代码,

在我的 html 页面中,在我的表单上:

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

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

function doUpload() {
    var srwebserviceURL = "/Webservices/Facilities/ServiceRequest.asmx";
    var sMsgBody = "<filePath>" + txtUploadFile.value + "</filePath>";
    var a = sendSoapMsg(srwebserviceURL, "SaveSRLogoPhotoSite", sMsgBody, "SaveSRLogoPhotoSiteResult");
}

正如您从上面的代码中看到的,我将照片的文件路径传递到我的网络服务。

在我的网络服务 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;
}

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

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

我该怎么做?

--编辑-- 我被告知可以使用 ajax..我是 ajax 的新手,不知道该怎么做..

提前致谢

最佳答案


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

关于c# - 如何使用 javascript 将 blob 图像从 html 页面上传到 C# 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24196294/

相关文章:

jquery - 滚动到下一个/上一个 div 不适用于手动滚动

html - GWT 中的数据 URI

c# - 迁移到 ASP.NET Core RC2 后集成测试中断

c# - 转换 Class<T> Where T : IMySampleInterface to Class<IMySampleInterface >

c# - 确定数组是否包含重复值的最快方法是什么?

Javascript 在 while 循环中更改不透明度不起作用

c# - .NET HttpClient : How to set the request method dynamically?

javascript - 动态设置选项已选中

javascript - Angularjs - 在页面刷新之前调用函数?

javascript - 如何在单词下方使用底部边框,长度有限且居中?