无法将文件从移动版上传到经典版目录,同一个域

时间:2016-05-20 19:07:35

标签: javascript php ajax https cors

我目前在使用当前使用的网站的移动版本上传文件时出现问题,我认为该问题与移动版本文件位于名为m的文件夹内的public_hmtl文件夹之外的事实有关,这样做是因为m.site.com链接无法正常工作,因为我使用经典的站点文件夹来存储所有媒体,问题从这里开始:

继承人正在使用的道路:

  • /
  • /米
  • /的public_html

中的文件
  • /m/user/fnc/upload.php

用于将img保存到

  • /的public_html /照片/用户/

这是upload.php中代码的一个片段 对于第一行,我使用一个名为$ img的重定向变量,该变量导致经典版本的索引,即

  • www.mysite.com /

所以

$URL = $img.'photos/users/';
$NewFotoName = "misite_".$usuarioid."_".time().".jpg";

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $imagen = $_POST['Imagen'];
    if ( isset($_POST['Imagen']) ) {
        $image = base64_decode($imagen);
        $im = imagecreatefromstring($image);
        imagepng($im,$URL.$NewFotoName);
        imagedestroy($im);

        $query = "UPDATE Utenti SET foto = '$NewFotoName' WHERE id_utente = ".$usuarioid;
        $result = $mysqli->query($query);
        if(!$result){die($mysqli->error);}
        echo "index2.php";
                die();
    } else {
        echo "index2.php";
                die();          
    }
} else {
    echo "index2.php";
                die();
}

我从它上面的一个文件夹中调用它,名为index2.php,代码如下:

$('.upload-result').on('click', function (ev) {
            $uploadCrop.croppie('result', {
                type: 'canvas',
                size: 'original'
            }).then(function (resp) {
                $('#imagebase64').val(resp);
                var imagen_cortada = $('#imagebase64').val();
                var base64image = imagen_cortada;
                var parametros = { "Imagen" : base64image };
                $.ajax({
                    data: { "Imagen" : output },
                    url: 'fnc/upload.php',
                    method: 'POST', // or GET
                    success: function(msg) 
                    {
                        alert("Imagen subida con exito.");
                        alert(msg);
                    },
                    error: function (jqXHR, textStatus, errorThrown)
                    {
                        alert("Error al Subir la Imagen.");
                        alert(errorThrown);
                        window.location.replace(msg);
                    }
                });

现在当表单被提交时,我得到了一个成功警报但是在"警报(msg);"我收到一条错误

  

imagepng(path / to / the / file.png):无法打开流;没有这样的文件或   /home/mysite/m/user/fnc/upload.php中的目录

因此文件的名称会保存到数据库中,但文件不会。

我感谢任何建议,请原谅任何拼写错误。

//编辑 我找到了一个工作arround并将subdomaind目录移动到public_html中,不得不学习一点关于.htacces,看来这样我就不会有那些讨厌的permision问题了

1 个答案:

答案 0 :(得分:0)

我找到了一个工作arround并将subdomaind目录移到了public_html里面,不得不学习一点关于.htacces,看来这种方式我不会有所有那些讨厌的permision问题,其他的workarrounds发布在类似的线程Vic Seedoubleyew张贴似乎没有为我做的伎俩