【发布时间】:2016-03-15 22:35:30
【问题描述】:
我使用 laravel 作为我的应用程序的后端,前端允许用户输入名字以及上传自己的照片。使用 html5 他们可以在页面上裁剪照片并发送裁剪的照片在表单上提交给我的控制器..
我收到以下错误:
ErrorException in testcontroller.php line 31:
Only variables should be passed by reference
这是我的视图,其中包含页面裁剪的表单和功能:
<form enctype="multipart/form-data" action="/testing" method="post" role="form">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control" />
</div>
<div class="form-group">
<label for="name">Title</label>
<input type="text" name="title" class="form-control" />
</div>
<div class="form-group">
<label>Image</label>
<div class="dropzone" data-width="960" data-height="540" data-ajax="false" data-originalsave="true" style="width: 100%;">
<input type="file" name="thumb" required="required" />
</div>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
这是我的控制器,它在本地保存照片并最终使用我服务器上文件的 url 更新客户记录:
public function test(Request $request)
{
$error = false;
$absolutedir = dirname(__FILE__);
$dir = '/tmp/';
$serverdir = $absolutedir.$dir;
$filename = array();
foreach($_FILES as $name => $value) {
$json = json_decode($_POST[$name.'_values']);
$tmp = explode(',',$json->data);
$imgdata = base64_decode($tmp[1]);
第 31 行 $extension = strtolower(end(explode('.',$json->name)));
$fname = substr($json->name,0,-(strlen($extension) + 1)).'.'.substr(sha1(time()),0,6).'.'.$extension;
$handle = fopen($serverdir.$fname,'w');
fwrite($handle, $imgdata);
fclose($handle);
$filename[] = $fname;
}
return view('upload');
}
我收到以下错误:
ErrorException in testcontroller.php line 31:
Only variables should be passed by reference
第 31 行 $extension = strtolower(end(explode('.',$json->name)));
【问题讨论】:
-
代码中的第 31 行是什么?因为知道它可能会有所帮助
-
更新问题,第 31 行 $extension = strtolower(end(explode('.',$json->name)));
标签: php mysql laravel laravel-5.1