문제

ASP.NET MVC보기에서 Uploadify의 CheckScript 기능을 구현하려고 노력하고 있지만 컨트롤러 측에서 사용해야하는 키가 무엇인지 결정할 수 없습니다. 아래는 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 Collection 양식을 통해 반복되며 키가 폴더가 아닌 경우 (폴더 매개 변수를 업로드합니다. ScriptCheck의 FormScollection에서도 업로드합니다) 파일이 이미 존재하는지 확인합니다. 그것이 존재하는 경우 키와 값은 사전에 추가되어 클라이언트로 반환됩니다. 그런 다음 업로드 플러그인은 파일이 존재한다는 것을 사용자에게 경고하고 업로드를 취소 할 수있는 기회를 제공합니다. 이것이 다른 사람을 도울 수 있기를 바랍니다.

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