Использование Uploadify с Sharepoint и .net - PullRequest
4 голосов
/ 25 августа 2009

У меня есть какой-то html, сгенерированный JQuery на странице Share Point. Я хочу использовать uploadify в этом html для загрузки файла на сервер. Александр помог, предоставив следующий пример кода, который частично основан на http://www.uploadify.com/forum/viewtopic.php?f=5&t=45.

upload.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" %>

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 (это правильно), поэтому файл там.

Главный вопрос: как мне заставить это играть с точкой обмена? Я пробую удаленную отладку файла 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, меня иногда просят авторизоваться, даже если я уже заходил в систему.

1 Ответ

1 голос
/ 25 августа 2009

Вы загружаете не на страницу, а в http обработчик . Вы должны добавить код, который вы вставили в upload.ashx , как указано в сообщении на форуме. Затем на клиенте используйте uploadify так:

$("#fileInput1").uploadify ({ script: 'upload.ashx' });
...