Ajax PHP Upload

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Also ich habe mich mal rangesetzt und versucht das eigenständig zu entwickeln. Erstmal machte ich den Upload über PHP. Die Ajaxanbindung an das PHP-Skript funktioniert auch... diesbezüglich sende ich den Upload, wie bereits in anderen Post besprochen, an ein iframe.
    So und jetzt kommt der Perl-Part. Da ich von Perl keine Ahnung habe, würde ich mich sehr freuen, wenn sich hier jemand bereit erklären würde, mir bei der Entwicklung zu helfen. Ich sende auch gerne meine Skript-Dateien zu.

    Das Perl-Upload-Skript setze ich in der Upload.js-Datei in das Action-Feld des Formulars. Die Frage ist, wie kann ich zwischen den Daten in dem Perl-Upload-File und Javascript und PHP Daten austauschen, bzw. interagieren???

    Zur bisherigen Umsetzung:

    Das Formular und iframe:

    Quellcode

    1. <form id="uploadForm" method="post" action="." enctype="multipart/form-data" onsubmit="return false;" target="uploadiframe">
    2. Datei auswählen:<br />
    3. <input id="fileupload" class="fileupload" type="file" name="file" />
    4. <br />
    5. <input id="uploadSubmit" type="button" value="Upload" onclick="upload();" />
    6. <input id="uploadPath" type="hidden" name="path" value="<?php echo $UPLOAD_DIR; ?>" />
    7. </form>
    8. <iframe id="uploadiframe" name="uploadiframe">iframe</iframe>


    Die Javascript-Datei mit dem der Upload gestartet wird. Hier wird der action-Verweis gesetzt und das Formular submittet:

    Quellcode

    1. // URL zum PHP Upload (kein Fortschrittsbalken möglich)
    2. // Auskommentiert, da Upload über Perl erfolgen soll
    3. // var uploadurl = './inc/inc_upload.php';
    4. // URL zum PERL Upload
    5. var uploadurl = './inc/inc_upload.pl';
    6. function upload() {
    7. var path = $('uploadPath').value;
    8. var params = "do=fileUpload&path="+path;
    9. var loader = new net.ContentLoader('./upload.php', upload_Handler, upload_error, 'POST', params, null);
    10. }
    11. function upload_Handler() {
    12. sendUpload();
    13. }
    14. function sendUpload() {
    15. $('uploadForm').action = uploadurl;
    16. $('uploadForm').submit();
    17. uploadStatus();
    18. }
    19. function uploadStatus() {
    20. // Hier den Upload-Status verarbeiten!!!
    21. // ?????? Wie funktioniert Anbindung zwischen Perl, Javascript und PHP ??????
    22. }
    Alles anzeigen
  • Und hier der PHP Upload für den, den es interessiert. Dies soll aber ein zuverlässiges Perl-Skript übernehmen, um ein geeigneten Upload mit Fortschrittsanzeige umzusetzen.

    Quellcode

    1. if(is_dir($_POST['path'])) {
    2. if($_FILES['file']['error'] == UPLOAD_ERR_OK) {
    3. $folderpath = $_POST['path'];
    4. $tmp_name = $_FILES["file"]["tmp_name"];
    5. $uploadfile = basename($_FILES['file']['name']);
    6. if(move_uploaded_file($tmp_name, $folderpath.'/'.$uploadfile)) {
    7. //Datei in Datenbank einfügen
    8. databaseAdd($folderpath, $uploadfile);
    9. // Ausgabe fürs iframe
    10. echo "Upload was successful!";
    11. echo "<br>Dateiname: ".$_FILES['file']['name'];
    12. echo "<br>Pfad:".$folderpath;
    13. echo "<br>Mime-Type: ".$_FILES['file']['type'];
    14. echo "<br>Size: ".$_FILES['file']['size']." Bytes";
    15. echo "<br>Code: ".$_FILES['file']['error'];
    16. }
    17. } else echo "Error: Upload failed [".$_FILES['file']['error']."]";
    18. } else echo "Error: Directory doesnt exists!";
    Alles anzeigen
  • hi

    sorry, also ich find es ziemlich überflüssig ein funktionierendes script nachzucoden
    klar, wenn ich das selbst in perl coden würde, würde mich es unter umständen reizen

    aber perl willst du ja gar nicht coden - also warum neu coden lassen, wenn das tesUpload paket bereits funktioniert

    auch deine anderen fragen sollten in der tesupload datei beantwortet werden
    das sind keine 5 KB PHP Code..

    konzentrier dich lieber darauf perl ordentlich zu installieren
  • Wie gesagt, tesUpload verwendet Perl in einem CGI-Skript. Nach deren Anweisungen soll dies in das CGI-Verzeichnis abgelegt werden. Ich habe aber kein CGI-Verzeichnis.

    Was mein Skript machen soll ist, einfach den Upload der Datei in mein Verzeichnis und Ausgabe des Upload-Status an Javascript, wo ich es dann weiterverarbeiten kann.
    Das duerfte doch nicht so kompliziert sein, dass man dafuer schon ein fertiges Skript nehmen muss, oder?