0

asp.net mvc ビューで uploadify の checkscript 機能を実装しようとしていますが、コントローラー側で使用する必要があるキーを特定できません。以下は php スクリプトですが、私は php にあまり詳しくなく、どの php が httprequest から削り取っているかを判断できません。誰かがこれを実装しましたか?ドキュメントは少しまばらです (存在しないように)。

$fileArray = array();
foreach ($_POST as $key => $value) {
    if ($key != 'folder') {
        if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) {
            $fileArray[$key] = $value;
        }
    }
}
echo json_encode($fileArray);
?>
4

1 に答える 1

0

これが検索する人のための解決策です。基本的に、uploadify スクリプトは、フォーム コレクションで生成したファイル名と一意のキーを送信します。すべてのキーを反復処理することで、それを取得できます。以下のコントローラー アクションは、フォームの allkeys コレクションを反復処理し、キーがフォルダーでない場合 (scriptCheck のフォーム コレクションでもアップロード フォルダー パラメーターが渡されます)、ファイルが既に存在するかどうかを確認します。存在する場合は、キーと値がディクショナリに追加され、クライアントに返されます。uploadify プラグインは、ファイルが存在することをユーザーに警告し、アップロードをキャンセルする機会をユーザーに与えます。これが他の誰かを助けることを願っています。

public ActionResult FileExists(FormCollection forms)
    {
        Dictionary<string,string> fileArray = new Dictionary<string,string>();

        foreach (string key in forms.AllKeys)
        {
            if (key != "folder")
            {
                string targetDirectory = Path.Combine(Request.PhysicalApplicationPath, @"uploads\documents\");
                string targetFilePath = Path.Combine(targetDirectory, forms[key]);
                if (System.IO.File.Exists(targetFilePath)) fileArray.Add(key, forms[key]);
            }
        }

        return Json(fileArray);
    }
于 2009-11-18T04:23:18.637 に答える