Hallo Leute,
Ich möchte ein Uploadscript mit einer progressbar entwickeln, doch leider funktioniert mein bisherige Code nicht und ich weiss nicht an was es liegt.
Hier ist mein JavaScript-Teil:
Code
$("#subUpload").live("change", function(){
var fd = new FormData();
var file = $("#subUpload")[0].files[0];
fd.append("subUpload", file);
$.ajax({
xhr: function()
{
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function(evt){
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress
$(".TEEST").text(percentComplete);
}
}, false);
return xhr;
},
type: 'POST',
url: "/script.php",
data: fd,
success: function(data){
alert("YES");
}
});
});
Alles anzeigen
Und hier das php-script:
PHP
<?php require_once('Streamer.php');
$ft = new File_Streamer(); $ft->setDestination('files/'); $ft->receive();?>
Und hier noch der Inhalt vom Streamer.php:
PHP
<?php
class File_Streamer{ private $fileName; private $contentLength; private $path; public function __construct() { if (array_key_exists('HTTP_X_FILE_NAME', $_SERVER) && array_key_exists('CONTENT_LENGTH', $_SERVER)) { $this->fileName = $_SERVER['HTTP_X_FILE_NAME']; $this->contentLength = $_SERVER['CONTENT_LENGTH']; } else throw new Exception("Error retrieving headers"); } public function setDestination($p) { $this->path = $p; } public function receive() { if (!$this->contentLength > 0) { throw new Exception('No file uploaded!'); } file_put_contents( $this->path . $this->fileName, file_get_contents("php://input") ); return true; }}?>
Irgendwelche Idee, aus welchem Grund dies nicht funktioniert?
Vielen Dank schon im voraus für die Hilfe.
Gruss
Sylnois