2012-03-29 7 views
0

Ich habe Ajax AsyncFileUpload auf meiner Website, hier ist, was ich tun muss: 1. Wenn der Benutzer eine Datei zum Hochladen durchsuchen und wählen, muss ich eine andere Asp .net Texbox mit aktualisieren ein Wert - dieser Wert verwendet den vollständigen Suchpfad, indem eine Zeichenfolge hinzugefügt wird.AsyncFileUpload zum Aktualisieren einiger Textfelder

wie diese Zeichenfolge zu aktualisieren ist kompliziert und verwendet den gesamten Pfad der Datei, ich möchte es auf Asp. NET C# -Code zu tun.

Wie kann ich es tun?

Antwort

1

Sie können es nicht tun, der Dateipfad ist nicht Javascript ausgesetzt, es ist eine Sicherheitsfunktion. Die Datei muss hochgeladen werden, bevor Sie den Pfad kennen, und selbst dann werden Sie den vollständigen lokalen Pfad nicht kennen.

Wenn sich Ihre Anwendungsfunktion auf das Ändern des Pfadnamens bezieht, könnte es sinnvoll sein, wenn Sie den Dateinamen in einem separaten Textfeld eingeben. Dann können Sie den Text über Ajax senden, um die Änderungen vorzunehmen auf was du willst.

+0

Lets ich bin in der Lage, den vollständigen Dateipfad auf der Serverseite mit PostedFile.fileName zu erhalten, aber ich bin nicht in der Lage, dann die TextBox mit der Zeichenfolge zu aktualisieren, die ich will, wie kann ich es schaffen? – briler

+0

verwenden Sie AsyncFileUpload aus dem AJAX Control Toolkit? Das OnClientUploadComplete-Ereignis sollte für Sie funktionieren. Sie könnten den vollständigen Pfadnamen in einer Sitzungsvariablen auf dem Server speichern und dann mithilfe einer Seitenmethode aus diesem Ereignis abrufen, siehe http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/ AsyncFileUpload.aspx für mehr –

+1

Vereinbaren Sie mit @Helmus, zumindest für moderne Browser. (Ich denke IE6 verwendet, um den vollständigen Pfad zum Server zu senden.) helmus, ein Tippfehler in Ihrem ersten Satz: Die Datei PATH wird nicht mit Javascrit ausgesetzt, aber die Datei NAME ist. – jbl

0

Nachdem Sie diese Zeichenfolge auf der nächsten Seite übergeben haben, müssen Sie so etwas tun, um den vollständigen Pfad zu erhalten.

$(function() 
{ 
    $.extend({ 
     getUrlVars: function(){ 
      var vars = [], hash; 
      var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
      for(var i = 0; i < hashes.length; i++) 
      { 
       hash = hashes[i].split('='); 
       vars.push(hash[0]); 
       vars[hash[0]] = hash[1]; 
      } 
      return vars; 
     }, 
     getUrlVar: function(name){ 
      return $.getUrlVars()[name]; 
     } 
    }); 
    var previous_email = $.getUrlVar('string'); 
    $("#pemail").val(''+previous_email+'') 
}); 

Dies ist Ihr Pfad abrufen, was Sie auf der vorherigen Seite senden. Die Nachteile ist, dass ich hier Methode benutze.

Verwandte Themen