从视图中的表单读取文件输入时总是出错

Posted

技术标签:

【中文标题】从视图中的表单读取文件输入时总是出错【英文标题】:Always get error when read file input from form in view 【发布时间】:2017-01-21 22:06:54 【问题描述】:

在那里我使用了两个输入文件,一个隐藏一个可见,在这里我想尝试如何调用控制器的输入,但是有一个错误调用成员函数getRealPath() on null ,如何调用隐藏在表单中的输入文件。谢谢你的回答

在控制器脚本中:

public function postPhoto()
    
        $photo = Input::file('photo')->getRealPath();

        if($this->cekUkuranFoto($photo) == false)
        
            Session::flash('message', 'size too big 2048 x 2048 !');
            return redirect()->back();
        

public function cekUkuranFoto($file)
    
        $gambar = Image::make($file);
        $ukuran = getimagesize($file);
        $width=$ukuran[0];
        $height=$ukuran[1];

        if($width < 2048 && height < 2048)
        
            return true;
        
        else
        
            return false;
        
    

查看表格:

<form method="GET" action="!! URL::to('/timeline/photo') !!" files="true" enctype="multipart/form-data">
                <div class="box-body">
                  <div class="form-group">
                  <input name='photo' id="file-image" type='file' onchange="readURL(this);" style="visibility:hidden;"/>
                    <p class="help-block">Maksimal ukuran foto 1500 x 1000 pixel</p>
                  <div class="col-sm-6">
                    <img id="image-responsive" class="img-responsive img-bordered-sm" src="!! url('/').'/protected/public/assets/images/default.png' !!" height=128 /><br/>
                    <input name="photo2" type="button" id="my-button" class ="btn btn-info" accept=".jpg,.jpeg,.png" value="Pilih Foto">
                    <button type="button" class="btn btn-danger" onclick="hapusGambar()" >Hapus</button>
                  </div>
                  <div class="col-sm-6">
                  <textarea name="photoinput" class="form-control" rows="6" placeholder="Deskripsi">!! Input::old('photoinput') !!</textarea>
                  </div>
                </div>
                </div>
                <div class="box-footer">
                  <button type="submit" class="btn btn-info pull-right">Posting</button>
                </div>
                </form>

在路线:

Route::get('/timeline/photo', 'ClientTimeLineContr@postPhoto' );

【问题讨论】:

【参考方案1】:

它不适用于GET 方法:

method="GET"

您应该将其更改为POST。你的路线也是:

Route::post('/timeline/photo', 'ClientTimeLineContr@postPhoto' );

【讨论】:

以上是关于从视图中的表单读取文件输入时总是出错的主要内容,如果未能解决你的问题,请参考以下文章

在 pandas 中读取 csv 文件时出错 [CParserError: 标记数据时出错。 C 错误:捕获缓冲区溢出 - 可能是格式错误的输入文件。]

从 pyspark 中的 HDFS 读取 70gb bson 文件然后将其索引到 Elastic 时出错

OpenSSL 一行 base64 输入。读取输入文件时出错

读取 plist 文件以填充表格时出错

OpenSSL一行base64输入。读取输入文件时出错

使用 pandas.read_csv 从 URL 读取压缩的 CSV 文件时出错