Usando Uploadify com Sharepoint e .net
-
19-09-2019 - |
Pergunta
Eu tenho um pouco de HTML a ser gerada pelo JQuery em uma página Share Point. Eu quero usar uploadify neste html para carregar um arquivo para o servidor. Alexander ajudou, fornecendo o código de exemplo a seguir que é baseado parcialmente em 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;
}
}
}
O arquivo não é fazer o upload para o servidor. O único evento que está sendo jogado é o onProgress. Navegando para _layouts / outros / Upload.ashx retorna 0 (isto é correto) para que o arquivo está lá.
A principal questão é como faço para obter esta a jogar com ponto de partilha? Tento remoto depuração o arquivo upload.ashx mas não me permite adicionar pontos de interrupção no VS tão remota depuração não faz nada.
Update 1
Esta questão Visual Studio ASHX arquivos de depuração tem depuração funcionando.
Quando eu navegar diretamente para a página 0 é escrito na página. O fogo depurador e tudo é bom. Quando o script executado não está batendo Upload.ashx como há pontos de interrupção são hit. Eu imagino minha referência Upload.ashx está incorreto. Eu tentei usar http: //mysite/_layouts/other/Upload.ashx no js e ainda não alegria ...
Update 2
Depois de alguns testes o problema parece ser que ele está me pedindo para entrar em Share Point novamente (eu estou logado). Isso está causando-lo tropeçar. Alguma idéia de como ter certeza de que o meu authenication é captado?
Update 3
Este é realmente estranho. Estou tentado a dizer que é um ajuste em meu IE8 que está fazendo isso como ele funciona para um companheiro de equipe.
Quando eu navegar diretamente para /_layouts/other/Upload.ashx que estou nunca pediu para autenticar. Quando eu vou via JS Às vezes sou convidado a authenicate mesmo que eu tenha logado antes.
Solução
Você não fazer o upload para uma página, mas a um http manipulador . Você deve adicionar o código que você colou a um upload.ashx , conforme especificado no post do fórum. Em seguida, no cliente, use uploadify assim:
$("#fileInput1").uploadify ({ script: 'upload.ashx' });