从json_encode()函数中删除双斜杠

时间:2015-11-27 10:11:00

标签: php json

当我为上传的文件数据执行json_encode()时,$ _FILE ['tmp_name']的值以双反斜杠传递,我认为这就是为什么函数move_uploaded_file()不起作用的原因。是否有任何解决方案那? 这是代码示例

UI:

    $scope.upload = function (file) {

    Upload.upload({
         url: '../classes/uploadPhoto.php',
         data: {file: file, 'username': $scope.usernameFile}
    }).then(function (resp) {

        $scope.uploadedPhoto = resp.data;

    });
};

PHP:

   public function __construct(){

    $fileObject = new stdClass();

    if(isset($_FILES['file'])){

         $fileObject  ->  name  = $_FILES['file']['name'];
         $fileObject  ->  type  = $_FILES['file']['type'];
         $fileObject  ->  tmp   = $_FILES['file']['tmp_name'];
         $fileObject  ->  error = $_FILES['file']['error'];
         $fileObject  ->  size  = $_FILES['file']['size'];

         echo json_encode($fileObject);
  }
}

最后一部分:

    $target_path = 'C:/xampp/htdocs/PDP/admin/ui/img/'.$request -> imageName;
        move_uploaded_file($request -> tmPath, $target_path);

除了move_uploaded_file()之外,一切正常。

1 个答案:

答案 0 :(得分:0)

双斜杠正在逃避斜线字符。如果你只需要一个斜杠。你可以使用str_replace()。

$_file['tmp_name'] = str_replace('//', '/', $_file['tmp_name']);
$_file['tmp_name'] = str_replace('\\', '\', $_file['tmp_name']);

上传内容时,建议您在表单元素中添加enctype =“multipart / form-data”。

检查文件和文件夹权限。因为这也可能是罪魁祸首。

参考文献: