質問

私はasp.net MVCのビューにuploadifyのcheckscript機能を実装しようとしていますが、私は、キーiは、コントローラ側で使用する必要がありますが何であるかを判断することはできません。以下は、PHPスクリプトですが、私は、PHPに精通していないですとのHttpRequestの掻き出しているものPHP判断することはできません。誰もがこれを実現していますか?ドキュメントは(存在しないように)少しまばらである。

$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);
?>
役に立ちましたか?

解決

ここでは誰もが検索するためのソリューションです。基本的にuploadifyスクリプトは、ファイル名と、それはフォームのコレクションに生成一意のキーを送信します。あなたはallkeysを反復処理することにより、それを得ることができます。反復処理し、以下のコントローラのアクションは、フォームallkeysコレクションをしている場合、キーは、それがファイルが既に存在するかどうかをチェックします(uploadifyフォルダパラメータもscriptCheckためformscollectionに渡される)フォルダではありません。それが存在しない場合は、キーと値は、クライアントに返された辞書に追加されます。 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);
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top