私が持っているのは、名前、住所などの詳細が記載されたフォームと、別のアップロードプロファイル写真フォームです。そして、「親」(別の)フォームが送信されたときに、その(オプションの)アップロードされた画像を取得したいと思います。
現在、これらは次のように機能します。
アップロードされ.ajaxSubmit()
た画像はprocess_uploaded_image.phpに送信されます。次に、処理され、サイズが変更され、新しい画像が「dump/temp」フォルダ内に作成されます。success: function(data)
エコーされる可能性のあるデータの形式で、$image_path_and_name
またはとして、それを返すことができます<img src="$image_path_and_name"/>
。私はこのように作成しました-つまり、一時的な画像を持っています-
(1)ユーザーにアップロードしたものを表示させたいので(jqueryにパスまたはimg要素を返したことを思い出してください。好きな場所に配置できます) )、 と
(2)アップロードされた画像は、「親」フォームが登録を完了するまで、最終的なものではありません。そして、それは結局のところまだ一時的なイメージです。
したがって、問題は次のとおりです。アップロードされた画像にアクセスし、送信時に「親」フォームと一緒に「持っていく」 ...どうすれば正確にそれを行うことができますか?フォーム内のフォームは許可されていないことを私は知っているので、技術的には親フォームではありません。しかし、それは論理的にその親の形の下で縛られています。助けていただければ幸いですが、できれば現在のシナリオを考えていただければ幸いですので、最初からやり直す必要はありません。再度、感謝します。
私の考え:(これがどれほど実行可能かを教えてください...および/または私が#1を行う方法に関するガイドライン)$image_path_and_name
1.文字列
のajax-jqueryで返された(データ)からそのファイルを「再構築」またはコピーするか<img src="$image_path_and_name"/>
、最終的なアップロードフォルダーに配置します。<---これは私が困惑しているところです!ただ使えなかったんmove_uploaded_file()
ですよね?
2.この時点から、すべてが最終的なものになります。他のフォーム情報とともに、ファイルパスをデータベースに保存できます。
3.ダンプ/一時フォルダーを空にします。
質問する
1063 次
3 に答える
2
私の解決策は、アップロードにiframeを使用し、iframeのリターンページでこのようなJavaScriptを使用することです。
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);
}
于 2012-11-06T06:24:58.757 に答える
1
1つは一時的なものとしてもう1つは最終的なものとして、2つのフォルダを作成します。画像をアップロードした後、ファイル名をメインフォームの非表示フィールドに配置します。画像を最終フォルダに、名前(非表示フィールドから)をデータベースに。
于 2012-11-06T06:56:15.870 に答える
1
ファイルの場所がわかっていて、ユーザーが画像を検証して確認した後、コピー機能を使用して一時フォルダーからメインフォルダーにコピーできます。
1) copy($file, $newfile)
2)新しいパスについてデータベースを更新します。
3)古いパスからファイルのリンクを解除します。
unlink($file);
于 2012-11-06T07:02:01.647 に答える