5

I have implemented the jQuery file upload plugin with a php framework it was relatively straight forward following the instructions.

https://github.com/blueimp/jQuery-File-Upload

My question is specifically towards the PHP class, When the images upload they upload into my framework folder (where the php script is executed). What I want to know is if there is a way to set the path where images will be uploaded to.

This is the class in question.

https://github.com/blueimp/jQuery-File-Upload/blob/master/server/php/UploadHandler.php

It is included in the jQuery file upload repository.

4 Answers 4

12

You can do it in two ways: 1.. by changing the line 40 in server / php / UploadHandler.php and put the directory you want

 'upload_dir' => dirname($this->get_server_var('SCRIPT_FILENAME')).'/files/',

2.. by adding the upload dir as parameter when initializing the class

$options = array ('upload_dir' => dirname(__FILE__) . '/uploaddir/');
$upload_handler = new UploadHandler($options);
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks, just add the second option inside the index.php instead the 1 setting who need to be set in the UploadHandler.php directly.
2

Add these options to your UploadHandler() function. Make sure to add "/" to end of path.

$upload_handler = new UploadHandler(array(
            'upload_dir' => '/Your/absolute/upload/folder/path/',  
            'upload_url' => '/url/of/above/path/',
            'script_url' => '/url/of/uploadhandler/script',
            'accept_file_types' => '/\.(jpe?g|png)$/i'
     ));

1 Comment

Perfect! this would fix the download URL problem if only upload_dir was changed.
0

I found by changing the path located in UploadHandeler.php on lines 40 and 41 this changed the specified path.

Comments

0

You can override the callback function as per

$('#fileupload').fileupload({
add: function (e, data) {
    var jqXHR = data.submit()
        .success(function (result, textStatus, jqXHR) {/* ... */})
        .error(function (jqXHR, textStatus, errorThrown) {/* ... */})
        .complete(function (result, textStatus, jqXHR) {/* ... */});
}
});

In the above example it is simply doing a form submit.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.