2009-08-25 5 views
4

J'ai un code html généré par JQuery sur une page Share Point. Je veux utiliser uploadify dans ce fichier html pour télécharger un fichier sur le serveur. Alexander a aidé en fournissant l'exemple de code suivant qui est basé partiellement sur http://www.uploadify.com/forum/viewtopic.php?f=5&t=45.Utilisation de Uploadify avec Sharepoint et .net

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; 
     } 
    } 
} 

Le fichier n'est pas le téléchargement sur le serveur. Le seul événement lancé est celui de onProgress. Naviguer vers _layouts/other/Upload.ashx renvoie 0 (c'est correct) donc le fichier est là. La question principale est comment puis-je obtenir ce jeu avec le point de partage? J'essaie de déboguer le fichier upload.ashx à distance, mais cela ne me permettra pas d'ajouter des points d'arrêt dans VS, donc le débogage à distance ne fait rien.

Update 1

Cette question Visual Studio ASHX files debugging a obtenu travail de débogage.

Lorsque je navigue directement à la page 0 est écrit sur la page. Le débogueur se déclenche et tout va bien. Lorsque le script s'exécute, il n'appuie pas sur Upload.ashx car aucun point d'arrêt n'est touché. J'imagine que ma référence à Upload.ashx est incorrecte. J'ai essayé d'utiliser http://mysite/_layouts/other/Upload.ashx dans les js et toujours pas de joie ...

Mise à jour 2

Après quelques tests, le problème semble être qu'il me demande de vous connecter en point de partage à nouveau (je suis connecté). Cela le fait trébucher. Des idées pour s'assurer que mon authentification est récupérée?

Mise à jour 3

C'est vraiment étrange. Je suis tenté de dire que c'est un paramètre dans mon IE8 qui le fait comme il fonctionne pour un coéquipier.

Lorsque je navigue directement dans /_layouts/other/Upload.ashx, je ne suis jamais invité à m'authentifier. Quand je passe par JS, on me demande parfois de m'authentifier même si je me suis déjà connecté.

Répondre

1

Vous ne téléchargez pas vers une page, mais vers un http handler. Vous devez ajouter le code que vous avez collé à upload.ashx, comme indiqué dans l'article du forum. Ensuite, sur le client, utilisez Uploadify comme ceci:

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

obtenir l'erreur suivante: Référence d'objet non définie à une instance d'un objet. à Upload.ProcessRequest (HttpContext contexte) à System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() à System.Web.HttpApplication.ExecuteStep (étape IExecutionStep, Boolean & completedSynchronously) – Jack

+0

Le troisième poste en le fil montre un peu de drame avec les dossiers (http://www.uploadify.com/forum/viewtopic.php?f=5&t=45#p1909). Soit cela lance l'exception, soit le fichier n'arrive pas sur le serveur - pouvez-vous vérifier lequel? –

+0

J'ai essayé le deuxième lot de code et toujours pas de chance. Ne pas aller loin avec le débogage. Pourquoi les choses ne sont jamais simples. – Jack

Questions connexes