2011-01-16 4 views
0

私はこのプロセスを処理するための最良のワークフローが何であるか疑問に思っています。php/ajaxファイルアップロードプロセス?

基本的な手順は次のとおりです。

ユーザがcsvファイルを選択してアップロードします。
次に、csvファイルが一連のルールに対してチェックされます。

csvファイルが無効な場合 ユーザーに無効な行が表示されます。
ユーザーはアップロードを終了するか、無効な行を削除するかを選択できます。

csvファイルが有効な場合、またはストリップがクリックされた場合 ユーザにファイル名を選択する画面が表示されます。ファイル名がすでにユーザーを取られている場合

a)は、既存のファイルを置き換え、その任意の名前)
B)にファイルを(名前変更
に選択肢を与えられています。
c)ファイル名をfilename_1などに変更します。

名前を選択すると、(csv_filename)というデータベースにテーブルが作成されます。
次に、csvからのデータがテーブルに入力されます。
ファイルが削除されます。
ユーザーが(表)からファイルデータを示すページが表示され


私の問題があり、 これは、すべてのAJAXを介して実行されます。 私たちはどのファイルを扱っているのかをどのように扱いますか?

私は、あまりにも簡単に改ざんするので、ファイル名をajaxレスポンスに戻したくありません。

私はファイルパスを保持してIDを返すテーブルを作成したくありません。このためのテーブルを持つのは無駄だと思われます。

+0

覚えておいていただきたいこと:ファイル名の衝突で何をすべきかを尋ねる必要がある場合は、要求が完了したときにPHPがファイルを削除するため、そのファイルをサーバ上のどこかに保存する必要があります。各プロンプトの後にファイルを再アップロードします。 –

+0

ファイルをアップロードすると、30分以上経過したすべてのファイルが自動的に削除されるディレクトリにファイルが保存されます。私が立ち往生している部分は、次のプロンプトでファイルを参照できることを確認するにはどうすればいいですか?これを管理し、ファイル名全体を渡し、ID /ファイル名のリンクを持つテーブルを作成する他のソリューション? – Hailwood

答えて

0

ファイルが最初の手順でアップロードされるとき、これにいくつかの問題があります。その完了、そのファイル名を持って、それは既にそこに終了することはできません。あなたはそれを分析するか、それをどう分析しますか?

ユーザーの観点から見ると、どのように働いているのか、それはおそらくあなたが意味していたように見えるようにすることができます。

とにかく、あなたが扱っているファイルを報告するには、それをセッション変数に格納します。

+0

どのように簡単にセッションを改ざんすることができますか(ファイルに含まれるデータは非常に敏感です。 また、 アップロードを終了する私は実際にプロセスを終了することを意図していたため、ファイルを削除するスクリプトが実行され、リダイレクトされます。 – Hailwood

+0

ファイル名の入力に関して、私は表示ファイル名を意味しました。 data_export_users_19.25.2010.csvは、「ファイル」のリストで見るのは特に素晴らしいことではありません。 – Hailwood

+0

共有ホスティングとあなたがデフォルトのセッションハンドラを使用している場合、サーバ上の誰かがセッションに格納されたデータを読み込むのはやや単純です。また、クライアント側では、mitm攻撃やその他の傍受によるセッションハイジャックの可能性が常に存在します。それ以外はかなり安全です。 – profitphp