【问题标题】:jQuery File Upload - My install's showing all files on server, etcjQuery File Upload - 我的安装显示服务器上的所有文件等
【发布时间】:2012-12-14 02:27:33
【问题描述】:

我希望熟悉 jQuery File Upload 的人可以帮助解决三个问题。

  1. 我安装了它,与他们网站的演示页面 (index.html) 不同,mine 显示了服务器“server/php/files”目录中的所有文件——不仅仅是那些刚刚在表单提交中上传的文件.我需要用户上传他们的文件,而不是看到其他人的上传。

  2. 最初将文件添加到队列时,它会显示正确的文件名,但在点击“开始上传”并实际发送后,它会将文件命名为“(1)”、“(1) (1)",以此类推。

  3. 我想删除此演示的客户端和服务器端预览和缩略图。 (有些用户会上传数百兆大小的图片,我不希望任何一个系统都尝试处理这些。)

(顺便说一句,演示页面说上传的文件会在 5 分钟后自动删除,但他们演示的 PHP 后端似乎并非如此。太好了 - 我不希望文件自动删除。)

附:如果不是要求太多,我只是注意到我的演示 index.html 在表单中仍然有 action="//jquery-file-upload.appspot.com/" ,但是正在将文件写入我的服务器,我很困惑.

【问题讨论】:

  • CentOS 5.8。阿帕奇 2.2.3-65。 php 5.1.6-39。 php-pecl-json 1.2.1-4(因为没有内置在 php 5.1 上,并且是他们的后端 PHP 脚本所需要的)。
  • 当您点击文件上传“浏览”按钮时,它显示的是您计算机上的文件,而不是服务器上的文件。
  • 对不起,我可能不太清楚。浏览计算机并添加文件后,它会创建一个斑马风格的文件列表,每个文件都有自己的开始和取消按钮。在我的安装中,在重新加载页面时,即使在清除缓存/cookie 的浏览器中,它也不会在没有列表的情况下启动页面——它显示了服务器目录中的所有内容。如果您访问“我的”链接,除非它正在检查 IP 地址,否则您会看到那里已经存在多个文件。
  • @user1902689 我也有这个问题,你解决了吗?
  • @hmd - 不,在遇到这个问题几周后,我放弃了这个项目。很抱歉听到你也有这个问题,但我很高兴这个问题回到了我身边。我很快就会再试一次。我特别想试试 Oleksii 和 Tim 的答案,看看他们是否有帮助。

标签: jquery file upload


【解决方案1】:

如果您要使用登录系统,请让它创建一个带有其唯一 ID 的文件夹并将文件上传到那里。否则,您可能需要做一些花哨的命名约定,并且只显示与这些名称匹配的文件。

【讨论】:

  • 有一天我计划拥有一个登录系统,但现在我想要一种方法让人们能够上传文件,但看不到从该表单提交中上传了什么。基本上是一个任何人都可以向其中发送文件的黑洞。
【解决方案2】:

1:

编辑主 index.php 文件并删除以下内容:

 <tr class="template-download fade">
  {% if (file.error) { %}
  <td></td>
  <td class="name"><span>{%=file.name%}</span></td>
  <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
  <td class="error" colspan="2"><span class="label label-important">Error</span> {%=file.error%}</td>
  {% } else { %}
  <td class="preview">{% if (file.thumbnail_url) { %}
    <a href="{%=file.url%}" title="{%=file.name%}" data-gallery="gallery" download="{%=file.name%}"><img src="{%=file.thumbnail_url%}"></a>
    {% } %}</td>
  <td class="name">
    <a href="{%=file.url%}" title="{%=file.name%}" data-gallery="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}">{%=file.name%}</a>
  </td>
  <td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
  <td colspan="2"></td>
  {% } %}
  <td class="delete">
    <button class="btn btn-danger" data-type="{%=file.delete_type%}" data-url="{%=file.delete_url%}"{% if (file.delete_with_credentials) { %} data-xhr-fields='{"withCredentials":true}'{% } %}>
            <i class="icon-trash icon-white"></i>
      <span>Delete</span>
    </button>
    <input type="checkbox" name="delete" value="1">
  </td>
</tr>

2

如果已经存在同名文件,则进行 (1) 命名。

3

#1 的解决方案也将解决这个问题。

5 分钟删除仅适用于在其服务器上运行的应用程序。

如果您所做的只是接受文件,则不需要表单操作。你可以删除它。

【讨论】:

  • 如何修改文件上传,使其不显示其他用户上传的文件,但显示刚刚上传的文件。 (上传的文件不会在上传后立即消失。
【解决方案3】:

不确定您的所有问题,但第一个问题(不同用户的分离文件)通过user_dirs 类的UploadHandler 设置解决。在 index.php 中,你可以这样:

<?php
// ...
$upload_handler = new UploadHandler(array(
    'user_dirs' => true
));

欲了解更多详情,请参阅此页面:https://github.com/blueimp/jQuery-File-Upload/wiki/PHP-user-directories

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 1970-01-01
    • 2013-08-02
    • 2016-11-20
    相关资源
    最近更新 更多