2016-11-14 33 views
0

我正在使用FineUploader,并想出了如何将图像上传到服务器。使用FineUploader,我可以预先使用指定文件夹中的文件填充上传区域吗?

$(document).ready(function() { 
    $('#fine-uploader-gallery').fineUploader({ 
    template: 'qq-template-gallery', 
    request: { 
     endpoint: "./vendor/fineuploader/php-traditional-server/endpoint.php" 
    }, 
    deleteFile: { 
     enabled: true, 
     endpoint: "./vendor/fineuploader/php-traditional-server/endpoint.php" 
    }, 
    chunking: { 
     enabled: true, 
     concurrent: { 
     enabled: true 
     }, 
     success: { 
     endpoint: "./vendor/fineuploader/php-traditional-server/endpoint.php?done" 
     } 
    }, 
    resume: { 
     enabled: true 
    }, 
    retry: { 
     enableAuto: true, 
     showButton: true 
    }, 
    thumbnails: { 
     placeholders: { 
     waitingPath: './node_modules/fine-uploader/jquery.fine-uploader/placeholders/waiting-generic.png', 
     notAvailablePath: './node_modules/fine-uploader/jquery.fine-uploader/placeholders/not_available-generic.png' 
     } 
    }, 
    validation: { 
     allowedExtensions: ['jpeg', 'jpg', 'gif', 'png'] 
    } 
    }); 
}); 

现在我想要指定文件夹中的图像出现在上传区域,当用户刷新页面或最初加载它时。我怎样才能做到这一点?

+0

如果您在谈论“JavaScript将文件添加到文件上传控件而没有明确的用户操作”,AFAIK,您不能。这是一个主要的安全威胁,已被缓解。想象一下这个功能可以做些什么。 “将用户客户端上的任何文件上传到服务器,而用户不知道”。 (从视图中隐藏元素很容易)。 –

回答

1

是的,你可以这样做。只需启用"initial files list" feature,并确保您的服务器使用正确的JSON数据来响应Fine Uploader发送的GET请求。例如,如果您想要在初始文件列表中显示一些服务器端文件,并且您希望Fine Uploader向端点/my/server/initialfiles发送GET请求,则您的配置将如下所示:

var uploader = new qq.FineUploader({ 
    session: { 
     endpoint: '/my/server/initialfiles' 
    } 
}) 

...和你的服务器的这个请求会是这个样子的响应(假设只有一个文件是代表):

[{ "name": "foo.jpg", "uuid": "7afs-sdf8-sdaf-7asdf", "thumbnailUrl": "/my/server/foo.jpg" } ] 

可以省略thumbnailUrl财产,如果你没有要呈现该文件的图像。

+0

完美!谢谢!你的代码很有用!什么是'uuid',我在哪里得到? – zeckdude

+0

每个上传请求都包含一个uuid作为qquuid参数。您应该将此文件与数据库中的文件条目一起存储。对于您要在加载中表现的未上传精美上传文件的文件,只需返回您在数据库中与该文件关联的其他唯一ID。 –

相关问题