#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? или мне нужно передать что-то еще и изменить мой текущий метод в моем веб-сервисе. очень жаль, новичок здесь..