Upload Problem

jackie05

Erfahrenes Mitglied
Hallo,
ich versuche irgendwie die Files von "input type='file'" in JavaScript oder Ajax auszulesen um diese dann der PHP Datei zu übergeben.

Hier ist erstmal der Code:
Code:
<script type="text/javascript">
        function upload() {
            alert("Test: "+$('input[type=file]')[0].files[0]);
                        $.ajax({
                            type: "GET",
                                url: "actions.php",
                                data: "act=upload&files="+$('input[type=file]')[0].files[0],
                                dataType:'html',
                                success: function(response){
                                    $("#message").html(response);
                                }
                        });
        }
</script>

Code:
<form action="" method="post" enctype="multipart/form-data">
    <input type="file" id="file" name="files[]" multiple="multiple" accept="image/*" />
  <input type="submit" value="Upload!" onclick="upload();";
/>
</form>

Ich möchte einfach die PHP Datei, um die Dateien hochzuladen, über Javascript aufrufen, leider weiss ich nicht, ob mein Script korrekt ist.

Ich danke euch schonmal für die Hilfe.

Gruss
 
Moin,
ich habe noch nicht soviel ahnung von JavaScript und bekomme es einfach nicht hin die Bilder von "input type='file'" auszulesen um diese dann der PHP Datei zu übergeben.

Gruss
 
Hallo nochmal,
ich hab das jetzt einigermaßen hinbekommen, nur wird immer die erste Datei hochgeladen anstatt alle die ausgewählt wurden.

Hier ist mal der Code:
Code:
function fileread(file) {
        var fsize = file.files[0].size;
        var fname = file.files[0].name;
        var ftype = file.files[0].type;
        var fielArray = ["image/png", "image/jpeg", "image/gif", "image/jpg"];
        var fileTrue = fielArray.indexOf(ftype);
        if(fileTrue>=0){
                var formData = new FormData();
                for (var i = 0; i < file.files.length; i++) {
                    var fileup = file.files[i];
                    // Check the file type.
                    if (!fileup.type.match('image.*')) {
                        continue;
                    }
                    // Add the file to the request.
                    formData.append('filename[]', fileup, fileup.name);
                    //alert(formData);

                }
                uploadajax(formData);
        }else{
            document.getElementById("error").innerHTML = "Incorrect file format, Please select an image file format..";
        }
    }


    function uploadajax(formData){
        var xhr = new XMLHttpRequest();
        xhr.open('POST', 'actions.php?act=imageUpload', true);
        xhr.onload = function () {
            if (xhr.status === 200) {
                console.log(xhr.responseText);
            } else {
                alert('An error occurred!');
            }
        };

        xhr.send(formData);
    }

PHP:
if ($_GET['act'] == "imageUpload") {
        if(isset($_FILES['filename'])) {

            $Dest = '../uploads/images';
            if(!isset($_FILES['filename']) || !is_uploaded_file($_FILES['filename']['tmp_name'][0])) {
                die('Something went wrong with Upload!');
            }
            $RandomNum = rand(0, 9999999999);

            $ImageName = str_replace(' ','-',strtolower($_FILES['filename']['name'][0]));
            $ImageType = $_FILES['filename']['type'][0]; //"image/png", image/jpeg etc.

            $ImageExt = substr($ImageName, strrpos($ImageName, '.'));
            $ImageExt = str_replace('.','',$ImageExt);

            $ImageName = preg_replace("/\.[^.\s]{3,4}$/", "", $ImageName);

            //Create new image name (with random number added).
            $NewName = $ImageName.'-'.$RandomNum.'.'.$ImageExt;

            move_uploaded_file($_FILES['filename']['tmp_name'][0], "$Dest/$NewName");
        }
    }

Woran könnte das denn liegen?

Gruss
 
Zurück