Question

Je suis en train de mettre en œuvre la fonction de checkscript Uploadify dans une vue mvc asp.net, mais je ne peux pas déterminer ce que la clé est que je devrais utiliser sur le côté du contrôleur. Ci-dessous le script php, mais je ne suis pas très familier avec php et ne peut pas déterminer ce que php râpe de la HTTPRequest. Quelqu'un at-il mis en œuvre cela? La documentation est un peu clairsemée (comme inexistante).

$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);
?>
Était-ce utile?

La solution

Voici la solution pour tous ceux qui cherchent. Fondamentalement, le script envoie Uploadify les noms de fichiers et une clé unique qu'il génère dans la collection de formulaires. Vous pouvez obtenir à par itérer AllKeys. L'action du contrôleur ci-dessous itère à travers la collection forment des AllKeys et si la clé est le dossier pas (paramètre de dossier Uploadify est également passé dans le FormsCollection pour scriptCheck), il vérifie si le fichier existe déjà. Si elle existe la clé et la valeur sont ajoutés à un dictionnaire qui est ensuite retourné au client. Le plugin Uploadify alors avertir l'utilisateur que le fichier existe et de leur donner la possibilité d'annuler le téléchargement. Espérons que cela aide quelqu'un d'autre.

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);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top