Pregunta

Estoy tratando de implementar la función de checkscript uploadify en una vista asp.net mvc, pero no puedo determinar lo que la clave es que debería usar en el lado del controlador. A continuación se muestra el script php, pero no estoy muy familiarizado con php y no puedo determinar qué PHP es raspado de la HttpRequest. Alguien ha implementado esto? La documentación es un poco escaso (como en inexistente).

$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);
?>
¿Fue útil?

Solución

Aquí está la solución para cualquier persona que busca. Básicamente el guión uploadify envía los nombres de archivo y una clave única que genera en la colección de formularios. Se puede llegar a ella por iteración a través de AllKeys. La acción del controlador continuación itera a través de la colección de formulario AllKeys y si la llave no es la carpeta (parámetro carpeta uploadify también se pasa en el FormsCollection para scriptCheck) se comprueba para ver si el archivo ya existe. Si existe la clave y el valor se añaden a un diccionario que luego se devuelve al cliente. El plug-in uploadify entonces alertar al usuario de que el archivo existe y darles la oportunidad de cancelar la carga. Espero que esto ayude a alguien más ahí fuera.

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);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top