簡體   English   中英

如何使用javascript從HTML頁面上載blob圖片到C#代碼

[英]How to upload blob image from html page using javascript to c# code

目前,我現在有此代碼,

在我的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");
}

因此,從上面的代碼中可以看到,我正在將照片的文件路徑傳遞給我的Web服務。

在我的Web服務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中調試時,它說找不到文件路徑

似乎我應該通過我的Web服務傳遞的文件路徑應該首先在服務器上,而不是它所在的PC當前文件系統的文件路徑。

我怎么做?

- 編輯 -我被告知使用ajax可以實現此操作。.我是ajax的新手,不知道該怎么做。

先感謝您


在本地運行Web時,需要上載的文件和服務器位於一台計算機上,因此您可以確定文件路徑並執行上載任務。 但是,將網站部署到其他服務器時,無法確定路徑文件。 您必須將文件轉換為流並發送到服務器,讀取流,轉換為期望的格式然后繼續。 謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM