Как загрузить файл (изображение) в IE8 (javascript в webservice) — Нет использования API FileReader, нет веб-сервера Apache (нет PHP)

#javascript #web-services #internet-explorer-8 #upload #filereader

#javascript #веб-сервисы #internet-explorer-8 #загрузка #filereader

Вопрос:

Как мне загрузить файл в IE8 без использования API FileReader, а также без использования php.

Я видел множество ответов, предлагающих использовать iframe, но я думаю, что для этого нужен php-файл, где я бы разместил. Я использую только html и javascript / jquery в моем клиентском скрипте и c # в моем серверном скрипте.

В настоящее время у меня есть это на моем site.htm:

 <table>
    <tr>
        <td>
        <input type="file" id="txtUploadFile" accept="image/*" onchange="changetext();" style="display:none"/>
        </td> 
        <td>
            <input type=submit id="submitButton" value="Submit" onclick="doUpload()"/>
        </td>
        </tr>
        <tr>
            <td>Note: Maximum file size is 5MB.</td>
        </tr>
</table>
  

и это в моем методе webservice / uploadFile.asmx / SaveSRLogoPhoto

 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;
}
  

Я просто хочу передать путь к файлу сервера файла изображения, который я пытаюсь загрузить на свой веб-сервис. Можно ли это сделать на стороне клиента? Если нет, я могу передать двоичный файл из моего html-файла в webservice. Но я не знаю, как это возможно в IE8 и без использования API-интерфейсов filereader и php

ПОМОГИТЕ, ПОЖАЛУЙСТА. ИСКАЛ ОТВЕТЫ В ТЕЧЕНИЕ НЕДЕЛИ! 🙁

Ответ №1:

Я видел множество ответов, предлагающих использовать iframe

ДА. Это единственный разумный способ сделать это для древних браузеров.

но я думаю, что для этого нужен php-файл, где я бы разместил.

Это не так. Ему просто нужно, чтобы сервер принимал и обрабатывал HTTP-запрос.

Я использую только html и javascript / jquery в моем клиентском скрипте и c # в моем серверном скрипте.

Вы можете использовать C # для приема HTTP POST запросов с файлами в отправленных данных.

Комментарии:

1. У вас есть пример загрузки с использованием iframe и отправки запроса на c #? Я искал, но все, что я вижу, это php-коды, которые я не могу использовать..

2. Нет разницы между отправкой запроса в конечную точку, обрабатываемую C #, и в ту, которая обрабатывается PHP. Клиент не знает и не заботится о внутренних компонентах сервера.

3. Um. Итак, для моей ситуации выше, вместо пути, что я тогда передам своему веб-сервису? Возможно ли получить путь из iframe? или мне нужно передать что-то еще и изменить мой текущий метод в моем веб-сервисе. очень жаль, новичок здесь..