Вопрос

У меня есть некоторый 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' });
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top