Ajax File Upload will nicht!

  • Der Pfad uploads/dateien/ existiert, ausgehend von dem Verzeichnis wo die beiden Dateien liegen?
  • Du testest auf einem Webserver mit PHP?
Wenn das passt, dann füge einen error-Callback hinzu entspr. der Doku von jQuery.ajax():
error
Type: Function( jqXHR jqXHR, String textStatus, String errorThrown )
A function to be called if the request fails. The function receives three arguments: The jqXHR (in jQuery 1.4.x, XMLHttpRequest) object, a string describing the type of error that occurred and an optional exception object, if one occurred. Possible values for the second argument (besides null) are "timeout", "error", "abort", and "parsererror". When an HTTP error occurs, errorThrown receives the textual portion of the HTTP status, such as "Not Found" or "Internal Server Error." As of jQuery 1.5, the error setting can accept an array of functions. Each function will be called in turn
Code:
<script>
$(document).ready(function(){
  $('#uploadForm').submit(function(e){
    if($('#uploadFile').val()){
      e.preventDefault()
      $('#loader-icon').show()
      $(this).ajaxSubmit({
        target:   '#targetLayer',
        beforeSubmit: function(){
          $('.progress-bar').width('0%');
        },
        uploadProgress: function (event, position, total, percentComplete){
          $('.progress-bar').width(percentComplete + '%');
          $('.progress-bar').html('<div id="progress-bar-status">' + percentComplete +' %</div>')
        },
        success: function(){
          $('#loader-icon').hide();
          $('#progress').hide();
        },
        error: function(jqXHR, textStatus, errorThrown) {
          console.log(jqXHR, textStatus, errorThrown);
        },
        resetForm: true
      });
      return false;
    }
  });
});
</script>
 
Zeigt die Console überhaupt nichts an? Selber habe ich den Debugger benutzt, um es zum Laufen zu bringen, aber ich nehme an, Du hast keinen?
 
Console sagt nix sie bleibt einfach leer

Hab das so gemacht
Java:
<script>
$(document).ready(function(){
  $('#uploadForm').submit(function(e){
    if($('#uploadFile').val()){
      e.preventDefault()
      $('#loader-icon').show()
      console.log("Loader Icon Show");
      $(this).ajaxSubmit({
        target:   '#targetLayer',
        beforeSubmit: function(){
          $('.progress-bar').width('0%');
          console.log("Progressbar 0%");
        },
        uploadProgress: function (event, position, total, percentComplete){
          console.log("Upload beginnt");
          $('.progress-bar').width(percentComplete + '%');
          $('.progress-bar').html('<div id="progress-bar-status">' + percentComplete +' %</div>')
        },
        success: function(){
          $('#loader-icon').hide();
          $('#progress').hide();
        },
        error: function(jqXHR, textStatus, errorThrown) {
          console.log(jqXHR, textStatus, errorThrown);
        },
        resetForm: true
      });
      return false;
    }
  });
});
</script>

dann sagt die Console nur
Loader Icon Show
Progressbar 0%

weiter geht er nicht
 
Zuletzt bearbeitet:
Okay habs jetzt hin bekommen diese jquery.form war kaputt :D

Jetzt aber anderes problem der speichert nicht.

$trgPath = "/uploads/files/".$_FILES["userImage"]["name"];

sollte ja /uploads/files/datei.dat
Funktioniert nicht

$trgPath = "uploads/files/".$_FILES["userImage"]["name"];

so machte der es ja
wo/datei/ist/uploads/files/datei.dat

aber da will ich sie ja nicht haben :(

Wieso geht das nicht?
 
Zwei Möglichkeiten:
  • Relativ mit ../ etc. den Pfad fest legen.
  • Den absoluten Pfad verwenden: Mit __FILE__ kannst Du den absoluten Pfad des Skriptes ermitteln und daraus den Pfad des Upload-Ordners festlegen. Nachteil: Wahrscheinlich unterscheiden sich lokaler Pfad und der auf dem Server.
 
Funktioniert nicht.
$trgPath = "../uploads/files/".$_FILES["userImage"]["name"];

upload.php ist in /plugins/fileuploader/upload.php
ziel ordner der datein soll sein /uploads/files/
"index" datei ist in /pages/wcf/fileuploader.php
 
Von dem Pfad von upload.php aus musst Du zwei Stufen höher gehen:
$trgPath = "../../uploads/files/".$_FILES["userImage"]["name"];

Und, wenn ich das richtig überblicke, für action ebenfalls:
action="../../plugins/fileuploader/upload.php"
Aber warum nicht beide PHP-Dateien in des selben Ordner, dass wäre es einfacher und übersichtlicher.
 
Zurück