4

私が持っているのは、名前、住所などの詳細が記載されたフォームと、別のアップロードプロファイル写真フォームです。そして、「親」(別の)フォームが送信されたときに、その(オプションの)アップロードされた画像を取得したいと思います。
現在、これらは次のように機能します。
アップロードされ.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_name1.文字列 のajax-jqueryで返された(データ)からそのファイルを「再構築」またはコピーするか<img src="$image_path_and_name"/>、最終的なアップロードフォルダーに配置します。<---これは私が困惑しているところです!ただ使えなかったんmove_uploaded_file()ですよね?
2.この時点から、すべてが最終的なものになります。他のフォーム情報とともに、ファイルパスをデータベースに保存できます。
3.ダンプ/一時フォルダーを空にします。

4

3 に答える 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 に答える