Использование Uploadify в Sharepoint и .net
-
19-09-2019 - |
Вопрос
У меня есть некоторый html, генерируемый jQuery на странице общего доступа.Я хочу использовать uploadify в этом html-файле для загрузки файла на сервер. Александр помог, предоставив следующий пример кода, который частично основан на http://www.uploadify.com/forum/viewtopic.php?f=5&t=45.
загрузить.ashx
<%@ Assembly Name="ClassName, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f099e668beaaa0f9" %>
<%@ WebHandler Language="C#" CodeBehind="Upload.ashx.cs" Class="Site.RootFiles.TEMPLATE.LAYOUTS.other.Upload" %>
загрузить.ashx.cs
public class Upload : IHttpHandler
{
public void ProcessRequest(HttpContext context) {
HttpPostedFile oFile = context.Request.Files["Filedata"];
if (oFile != null) {
const string sDirectory = "c:\\";
if (!Directory.Exists(sDirectory))
Directory.CreateDirectory(sDirectory);
oFile.SaveAs(Path.Combine(sDirectory, oFile.FileName));
context.Response.Write("1");
}
else {
context.Response.Write("0");
}
}
public bool IsReusable {
get {
return false;
}
}
}
Файл не загружается на сервер.Единственное генерируемое событие - это событие onProgress.Переход к _layouts/other/Upload.ashx возвращает 0 (это правильно), значит, файл есть.
Главный вопрос заключается в том, как мне заставить это играть с помощью share point?Я пытаюсь удаленно отладить файл upload.ashx, но это не позволяет мне добавлять точки останова в VS, поэтому удаленная отладка ничего не дает.
Обновление 1
Этот вопрос Отладка файлов Visual Studio ASHX заработала отладка.
Когда я перехожу непосредственно на страницу, на странице записывается 0.Отладчик запускается, и все в порядке.Когда скрипт запускается, он не попадает в Upload.ashx, поскольку точки останова не достигнуты.Я полагаю, что моя ссылка на Upload.ashx неверна.Я пробовал использовать http://mysite/_layouts/other/Upload.ashx в js и по-прежнему никакой радости...
Обновление 2
После некоторого тестирования проблема, похоже, заключается в том, что он просит меня снова войти в Share Point (я вошел в систему).Это приводит к тому, что он спотыкается.Есть какие-нибудь идеи, как убедиться, что моя аутентификация подтверждена?
Обновление 3
Это действительно странно.Меня так и подмывает сказать, что это настройка в моем IE8, которая делает это так, как это работает для товарища по команде.
Когда я перехожу непосредственно к /_layouts/other/Upload.ashx, меня никогда не просят пройти аутентификацию.Когда я захожу через JS, меня иногда просят подтвердить подлинность, даже если я входил в систему раньше.
Решение
Вы загружаете данные не на страницу, а на http-обработчик.Вам следует добавить код, который вы вставили в загрузить.ashx, как указано в сообщении на форуме.Затем на клиенте используйте uploadify следующим образом:
$("#fileInput1").uploadify ({ script: 'upload.ashx' });