有人可以帮助我在 IIS 7 中使用 PHP FastCGI 中的 ExtJS 4 进行必要的配置(或帮助解决)文件上传吗?应用程序用户界面运行良好,但文件没有移动到\file_upload\public\tmp\upload
文件夹中。
更多详情:
在过去的几天里,我一直在为 ExtJS 4 尝试不同的多文件上传小部件。有些只适用于新的 HTML 5 文件 API,但在 Internet Explorer 中被破坏了。有些只是用户界面不能很好地与 ExtJS 4 配合使用,所以我认为它们看起来有点傻。我终于找到了一个适用于所有浏览器的,尽管它很简单!我已经在 IIS 7 上的 Windows Server 2008 中使用 PHP FastCGI 配置了下面的 ExtJS/PHP 多文件上传应用程序(博客链接)。我有一些设置说明。除了配置和其他一些让应用程序用户界面正常工作的事情外,我并没有真正改变应用程序的任何内容。
Windows 安装说明:
1.) 小部件在这里找到:
http://blog.debug.cz/2012/05/file-upload-widget-for-extjs-4x.html
这是演示:
在 GitHub 上下载源代码:
https://github.com/ivan-novakov/extjs-upload-widget
2.) 为简单起见,将提取的文件放在桌面上并重命名根文件夹“file_upload”
3.) 下载 ExtJS 4 并将根 ExtJS 4 文件夹重命名为“extjs”并放置在此文件夹中:
\file_upload\public\[extjs]
下载并解压:
http://cdn.sencha.io/ext-4.1.0-gpl.zip
4.) (在 Windows 中)将“上传”快捷方式文件重命名为“upload_old”(或直接删除),并将实际上传文件夹复制\file_upload\lib\upload
到文件夹中\file_upload\public\external\upload
5.)\file_upload\public\tmp\upload
为 PHP 文件创建文件上传文件夹以放置其文件
define('UPLOAD_DIR', '/tmp/upload/');
6.) 在 IIS 7 中的 Windows Server 2008 (x64) 中设置 PHP
在 Windows Server 2008 上的 IIS 7 中打开 CGI
已下载 IIS 7.0 (x64) 管理包
遵循以下说明:
http://www.howtogeek.com/50432/how-to-install-php-on-iis-7-for-windows-server-2008/
使用了这些 php.ini 设置:
cgi.force_redirect = 0
fastcgi.impersonate = 1
extension_dir = "D:\Program Files\php\ext"
date.timezone = "America/Chicago"
extension=php_curl.dll"
display_errors = On ==========> more notes below
upload_tmp_dir = "{desktop path}\file_upload\public\tmp\upload"
7.) 放置在我的 php 文件的顶部,因为 IIS 7 显然存在一些问题???
<?PHP
ini_set('display_errors',true);
8.) 按照此处的答案在 IIS 7 中为 PHP 配置 HTTP 错误
https://serverfault.com/questions/19561/how-can-i-display-and-log-php-errors-on-iis7
- IIS 管理器 > 单击网站 > 配置编辑器 > system.webServer > httpErrors > 将“DetailedLocalOnly”更改为“详细”
9.)在C:\Windows\php.ini
我将此配置设置设置为“开”
display_errors = On
还是应该将此配置设置设置为“stderr”,因为我在 IIS 7 中使用 FastCGI?
; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments. Depending on the code
; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; It's recommended that errors be logged on production servers rather than
; having the errors sent to STDOUT.
; Possible Values:
; Off = Do not display any errors
; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
; On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = On
10.) 更改 \file_upload 文件夹及其子文件夹的安全性
IIS_IUSRS 用户组(或只是 IUSR 用户)
IIS APPPOOL{应用程序池}
11.) 将该\file_upload
文件用作您的 IIS 站点 Web 根文件夹