У меня есть форма с данными, такими как имя, адрес … и другая отдельная форма профиля профиля загрузки. И я хочу получить эту (необязательную) загруженную картинку при отправке «родительской» (отдельной) формы.
Сейчас они работают так:
Загруженный .ajaxSubmit()
отправляется через .ajaxSubmit()
в process_uploaded_image.php. Затем он обрабатывается, изменяется, а новое изображение создается в папке «дамп / темп». Я мог бы с success: function(data)
вернуть его success: function(data)
, в виде данных, которые могут быть эхом имени $image_path_and_name
или как <img src="$image_path_and_name"/>
. Я сделал это таким образом – у этого есть временное изображение – так как
(1) Я хочу, чтобы пользователь просмотрел то, что он только что загрузил (помните, что у меня уже есть возвращаемый путь или элемент img для jquery, и я мог бы разместить его в любом месте), и
(2) загруженное изображение не является окончательным, пока форма «родительская» не завершит регистрацию. И все-таки это временное изображение.
Итак, проблема в том, что я хочу получить доступ к этому загруженному изображению и «принести его» с формой «родителя», когда он будет отправлен … как я могу это сделать точно? Технически это не родительская форма, так как я знаю, что форма внутри формы не допускается. Но он привязан и под этой родительской формой логически. Я был бы благодарен за любую помощь, но, если возможно, я был бы признателен еще больше, если бы вы могли рассмотреть мой нынешний сценарий, поэтому мне больше не придется начинать с нуля. Еще раз спасибо.
Моя идея: (пожалуйста, дайте мне знать, насколько это возможно … и / или рекомендации о том, как я мог бы сделать # 1)
1. «Восстановить» или скопировать этот файл из ajax-jquery, возвращенного (данных) строки $image_path_and_name
или <img src="$image_path_and_name"/>
, поместить его в конечную папку для загрузки. <— ЭТО, ГДЕ Я ОСТАНОВЛЕН! Я не мог просто использовать move_uploaded_file()
, не так ли?
2. Так как с этого момента все окончательно. Я могу сохранить его путь к моей базе данных, а также другую информацию о форме.
3. Удалите папку дамп / темп.
Мое решение состоит в том, что с использованием iframe для загрузки и использования JavaScript, как это на странице возврата iframe
echo("<script type=\"text/javascript\">parent.insert('". $WHAT_YOU_WANT . "');</script>");
и insert
функции определена на родительской странице и может вставлять строку туда, где вы хотите. obj_ta
– целевое текстовое поле или что-то еще.
//A simple input function insert(str) { obj_ta.value = str; } //A textfield which accept some other user inputs function insert(str) { var startPos = obj_ta.selectionStart, val = obj_ta.value; obj_ta.value = val.substring(0, startPos) + str + val.substring(startPos, obj_ta.value.length); }
Сделайте две папки одной в качестве временного и другого окончательного ……. и после загрузки изображения поместите имя файла в скрытое поле в основной форме …….. затем при отправке данных в базу данных переместите образ в конечную папку и имя (из скрытого поля) в базу данных.
Если у вас есть местоположение файла и после того, как пользователь проверяет и подтверждает изображение, вы можете использовать функцию копирования для копирования из вашей временной папки в основную папку. Так что это будет похоже на
1) copy($file, $newfile)
2) Обновите базу данных о новом пути.
3) Отключите файл от старого пути.
unlink($file);
Подробнее об отсоединении файла