Cakephp 3.x试图查看上传的图像导致缺少控制器错误

时间:2017-12-23 23:21:07

标签: php cakephp server cakephp-3.0

我的图片位于webroot / uploads / profiles / partner_1 / bg_image.jpg

当我尝试显示位于以下位置的上传图片时: 上传/简档/ PARTNER_1 / bg_image.jpg

我收到错误:

  

错误:找不到UploadsController。

这使得特别令人沮丧的是,同一个应用程序正在我的本地开发服务器上工作,并且只有在我将它移动到生产时才会失败。我觉得必须有一些简单的解决方案,因为我强调最后期限,我才会失踪。

.htaccess文件未经修改,但如下:

# Uncomment the following to prevent the httpoxy vulnerability
# See: https://httpoxy.org/
#<IfModule mod_headers.c>
#    RequestHeader unset Proxy
#</IfModule>

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

我尝试将目标文件放在路径下的不同目录中。这似乎是目录深度的一个因素。

我可以在以下位置找到该文件:     /上传,     /上传/简档,     / IMG,     / img / uploads,

基本上比2个目录更深的东西,然后webroot失败。

1 个答案:

答案 0 :(得分:1)

您的重写规则中没有条件排除现有文件。

// Define some test data by 5i + 3i^2. The plan is to let cminpack figure out
// the values 5 and 3.
var data = Enumerable.Range(0, 20)
    .Select(i => 5 * i + 3 * Math.Pow(i, 2))
    .ToList();

CminpackFuncMn residuals = (p, m, n, x, fvec, iflag) =>
{
    unsafe
    {
        // Update fvec with the values of the residuals x[0]*i + x[1]*i^2 - data[i].
        var fvecPtr = (double*)fvec;
        var xPtr = (double*)x;
        for (var i = 0; i < m; i++)
            *(fvecPtr + i) = *xPtr * i + *(xPtr + 1) * Math.Pow(i, 2) - data[i];
    }
    return 0;
};

// Define an initial (bad, but not terrible) guess for the value of the parameters x.
double[] parameters = { 2d, 2d };
var numParameters = parameters.Length;
var numResiduals = data.Count;
var lwa = numResiduals * numParameters + 5 * numParameters + numResiduals;

// Call cminpack
var info = lmdif1(
    fcn: residuals,
    p: IntPtr.Zero,
    m: numResiduals,
    n: numParameters,
    x: parameters,
    fvec: new double[numResiduals],
    tol: 0.00001,
    iwa: new int[numParameters],
    wa: new double[lwa],
    lwa: lwa);

// info is now 2, and parameters are { 5, 3 }.
Console.WriteLine($"Return value: {info}, x: {string.Join(", ", parameters)}");

我不会将您的<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule> 文件识别为任何先前版本的CakePHP中的任何内容。这并不意味着它是错误的,但是所有版本都重写了.htaccess文件的URL。