Search code examples
javascriptphpfile-uploadxmlhttprequest

Using "A little vanilla framework" to build an upload feature


Looking at this document; I am trying to make a file upload using XMLHttpRequest.

Here is how I start: I take the code in the A little vanilla framework section of the document. Then I first make it work on my own site. Then to implement the upload functionality I want to modify the end of the register.php file. Indeed a file transfer to the server is already happening there. To call it an upload I only have to save the file on the server.

I do that after these lines:

echo "\n\n:: Files received ::\n\n";
print_r($_FILES);

There, I want to write the contents of $_FILES[0] on the server. For that I use this code:

$myfile = fopen("MyData.jpg", "w");
fwrite($myfile, $_FILES[0]);

// The three lines below that I have tried instead of the one above do not work either.
//fwrite($myfile, json_encode($_FILES['photos']);
//fwrite($myfile, json_encode($_FILES[photos[0]]);
//fwrite($myfile, json_encode($_FILES['photos'][0]);

fclose($myfile);

As a result, there is a file named MyData.jpg written on the server as expected, but its length is zero.

I think there is a mistake in the three lines above but, what did I do wrong?


Solution

  • I think you'll get data here: $_FILES['photos']['tmp_name'][0]. Try it please.

    Or

    You could rewrite your code like below:

    foreach($_FILES['photos']['tmp_name'] as $i=>$file){
        if($_FILES['photos']['error'][$i] == 0){
            move_uploaded_file($file, "MyData_".$i.".jpg");
        }
    }