开发者

Uploadify JQuery & PHP/MySQL - Change file name on upload

I'm using Uploadify as part of a form. Let me give you a bit of background, it may help. I have a form where a user can add "projects" to a website. First they type in the name of the project and a description. On submit, this updates a PHP/MySQL database table named "project" and is given an ID.

The user can then upload files to a location on the server. I wish to add the project name onto the start of the file name for upload AND the project ID (which I need to add to the database) before upload begins, then when upload completes add the file details to a database table "image" - linked to "project" via the project ID.

I know I'm kinda bouncing back and forth a lot, I need to know how to do this. Two database tables to update, one on form submit and one on file-upload. I need to pass the project name and ID to the uploadify upload script.

SOLUTION:

I had to use the below uploadify method to send the Project ID to the uploadify script, having previously filled variable pid with the mysql_insert_id result:

'onSelectOnce': function(event,data) {
     $('#file_upload').uploadifySettings('scriptData', {'pid': pid});
 }

I could then receive the pid variable in the PHP uploadify script using a simple post:

$pid = $_POST['pid'];

It was then a matter of running a select within this script to get the data I needed for the database (the project alias) and adding it to the filename before upload:

    $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/' . $alias . '-';
    $targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

Hopefully this wi开发者_开发技巧ll help people in the future.


I had to use the below uploadify method to send the Project ID to the uploadify script, having previously filled variable pid with the mysql_insert_id result:

'onSelectOnce': function(event,data) {
     $('#file_upload').uploadifySettings('scriptData', {'pid': pid});
 }

I could then receive the pid variable in the PHP uploadify script using a simple post:

$pid = $_POST['pid'];

It was then a matter of running a select within this script to get the data I needed for the database (the project alias) and adding it to the filename before upload:

$targetPath = $_SERVER['DOCUMENT_ROOT'] . $_REQUEST['folder'] . '/' . $alias . '-';
$targetFile =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];

Hopefully this will help people in the future.


In the uploadify script there is part that gives the syntax for the file being handled by the upload form. I don't have the script on hand, but uplodify hs a onbefore complete callback and an on complete call back features.

use the before complete and append the name to an ajax request that will save it to your database, from there just perform 2 queries, upload the name of the image and set user_id to the ID of the user thats probably from ur session.

   var = file_before_upload_name: filename // here use the sytax that Uploadify uses to capture the name of the file
   var = file_after_upload_name: filename // here use the sytax that Uploadify uses to capture the name of the file

then on the aftercomplete callback use an ajax request and set

uid : uid //from a session before: file_before_upload_name, after : file_after_upload_name

in the ajax your queries would look like

mysql_queries("INSERT INTO `tbl-projects` SET `user_id` = {$_POST['uid']}, `file` = {$_POST['after']}");

//another query here to set the data to your other table that relates to tbl-projects


Try this http://programmintalk.blogspot.com/2011/02/jquery-uploadify-rename-uploaded-file.html

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜