我遇到了以下问题: 我已经创建了一个简单的图像上传过程。
public function postImage($id){
$filename = date('Y-m-d_H:i:s').".jpg";
$note=Note::find($id);
$destinationPath='/srv/www/htdocs/example.com/api/public/projects/'.$note->project_id.'/notes/'.$id."/images/";
$file = Request::file('image');
$file->move($destinationPath, $filename);
$image = new Image;
$image->filename='projects/'.$note->project_id."/notes/images/".$filename;
$image->note_id=$id;
$image->save();
$result= $this->respondWithItem($image, new ImageTransformer);
return $result;
}
当返回文件名时,在这种情况下,文件路径从文件开始,从项目加上结尾,它总是返回文件名
像那样projects\/1\/notes\/images\/2015-03-27_10:44:291.jpg
我当然不希望在我的回复中有反斜杠。
我像这样使用Transformer:
<?php namespace App\Http\Controllers;
use Image;
use League\Fractal\TransformerAbstract;
class ImageTransformer extends TransformerAbstract
{
public function transform(Image $image)
{
return [
'id' => (int) $image->id,
'filename' => $image->filename,
'note_id' => $image->note_id,
'updated_at' => strtotime((string)$image->updated_at),
'created_at' => strtotime((string)$image->created_at)
];
}
}
我在文件名上尝试了从str_replace
到stripslashes
的所有内容,但它无效。我错过了我做错的事吗?
直接在控制器中返回文件名时,响应是正确的。