Domanda

Sto cercando di implementare la funzionalità di checkscript uploadify in una vista mvc asp.net ma non riesco a determinare ciò che la chiave è dovrei usare sul lato del controller. Di seguito è riportato lo script PHP, ma io non sono molto familiare con php e non riesco a determinare ciò che PHP è raschiando fuori dalla HttpRequest. Qualcuno ha implementato questo? La documentazione è un po 'scarsa (come in inesistente).

$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);
?>
È stato utile?

Soluzione

Ecco la soluzione per chiunque la ricerca. Fondamentalmente lo script uploadify invia i nomi di file e una chiave unica che genera nella collezione forme. È possibile ottenere a questo scorrendo AllKeys. L'azione di controllo sotto itera attraverso la raccolta di forma AllKeys e se la chiave non è la cartella (parametro cartella uploadify è anche superato nel FormsCollection per ScriptCheck) controlla per vedere se il file esiste già. Se esiste la chiave e il valore si aggiungono a un dizionario che viene poi restituito al client. Il plugin uploadify poi avvisare l'utente che esiste il file e dare loro l'opportunità di annullare il caricamento. Spero che questo aiuti qualcun altro fuori.

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);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top