Uploadify JQuery & PHP / MySQL - изменить имя файла при загрузке - PullRequest
3 голосов
/ 14 января 2011

Я использую Uploadify как часть формы. Позвольте мне дать вам немного предыстории, это может помочь. У меня есть форма, где пользователь может добавлять «проекты» на сайт. Сначала они вводят название проекта и описание. При отправке обновляется таблица базы данных PHP / MySQL с именем «project» и ей присваивается идентификатор.

Затем пользователь может загружать файлы в определенное место на сервере. Я хочу добавить имя проекта в начало имени файла для загрузки И ИД проекта (который мне нужно добавить в базу данных) до начала загрузки, затем, когда загрузка завершится, добавить информацию о файле в таблицу базы данных "изображение" - связан с «проектом» через идентификатор проекта.

Я знаю, что я немного подпрыгиваю, мне нужно знать, как это сделать. Две таблицы базы данных для обновления, одна при отправке формы и одна при загрузке файла. Мне нужно передать имя и идентификатор проекта в скрипт загрузки uploadify.

РЕШЕНИЕ:

Мне пришлось использовать указанный ниже метод загрузки, чтобы отправить идентификатор проекта в сценарий загрузки, предварительно заполнив переменную pid результатом mysql_insert_id:

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

Затем я мог бы получить переменную pid в сценарии загрузки PHP, используя простую запись:

$pid = $_POST['pid'];

Тогда нужно было выполнить выбор в этом сценарии, чтобы получить данные, необходимые для базы данных (псевдоним проекта), и добавить их к имени файла перед загрузкой:

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

Надеюсь, это поможет людям в будущем.

Ответы [ 3 ]

3 голосов
/ 19 января 2011

Мне пришлось использовать приведенный ниже метод uploadify, чтобы отправить идентификатор проекта в сценарий загрузки, предварительно заполнив переменную pid результатом mysql_insert_id:

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

Затем я мог бы получить переменную pid в скрипте загрузки PHP, используя простую запись:

$pid = $_POST['pid'];

Затем нужно было запустить выбор в этом скрипте, чтобы получить данные, необходимые для базы данных (псевдоним проекта), и добавить их к имени файла перед загрузкой:

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

Надеюсь, это поможет людям в будущем.

1 голос
/ 12 февраля 2011
1 голос
/ 14 января 2011

В скрипте uploadify есть часть, которая дает синтаксис для файла, обрабатываемого формой загрузки. У меня нет сценария под рукой, но я добавила в него полный вызов и полный вызов.

используйте готовое завершение и добавьте имя к запросу ajax, который сохранит его в вашей базе данных, оттуда просто выполните 2 запроса, загрузите имя изображения и установите user_id для идентификатора пользователя, который, вероятно, из сеанса .

   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

, затем в обратном вызове после завершения используйте ajax-запрос и установите

uid: uid // из сеанса before: file_before_upload_name, после: file_after_upload_name

в ajax ваши запросы будут выглядеть как

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
...