Symfony上传的文件未在Azure上读取

时间:2018-11-13 18:15:22

标签: php azure symfony azure-web-sites

我有2个问题。

我已在Azure MySQL + PHP Web应用程序上部署了Symfony 3.4应用程序。我有一些表格,用户可以在其中上传文件。图片,pdf等。

第一个问题:

当我部署站点时,我的symfony应用程序上载目录中有300多个文件,而我无法从表单中上载文件。登录Azure时发现错误。

ERROR

There are 349 items in this directory, but maxViewItems is set to 299. You 
can increase maxViewItems by setting it to a larger value in localStorage.

因此,我删除了所有图像,并尝试再次上传图像,并成功上传图像。那么我如何才能从Azure中删除localStorage限制?。

第二个问题:

上传的图像未出现在网站上。如何在网站上显示它们?

我的上传目录是

/web/uploads/media/default/0001/01/

这里我正在从表单上传图像。

3 个答案:

答案 0 :(得分:1)

blog解释了由Kudu Service Web code引起的此问题的原因,您可以参考并尝试通过以下解决方案对其进行修复。

这里有两种解决方案可以帮助解决它。

  1. 就像@ mohamed-jebri所说的那样,更新页面中使用的Javascript代码,并通过MAX_VIEW_ITEMS来更改window.localStorage['maxViewItems'] = 350的值。
  2. 通常在Azure for Webapp上,建议通过Azure Blob存储存储和访问很多资产文件,请参阅the offical document for PHP以了解如何使用它。同时,要存储和获取资产文件的元数据(如文件名或路径),可以使用Azure Table Storage

答案 1 :(得分:0)

如果您使用的是Chrome浏览器,请访问您的网站

  1. 打开开发人员工具(F12)
  2. 在控制台中,运行window.localStorage ['maxViewItems'] = 350

答案 2 :(得分:0)

第二个问题。问题出在我的web.config文件中,我通过添加一条允许文件类型如下的规则解决了该问题。

    <rule name="RewriteAssetsToPublic" stopProcessing="true">
         <match url="^(.*)(\.css|\.woff|\.woff2|\.tff|\.js|\.jpg|\.png|\.gif|\.ico|\.pdf|\.jpeg)$" />
         <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
         </conditions>
         <action type="Rewrite" url="web/{R:0}" />
    </rule>

这个问题解决了所有文件都被上传的问题。