无法获取输入文件的值

时间:2017-08-02 09:32:34

标签: javascript css laravel

它现在正在工作

我使用laravel并且我有一个带有输入文件的表单来上传一些图片,问题是我想在上传之前渲染图像并且我对样式进行了一些更改。

我的代码如下所示:

<table>
    <tr>
        <td>
            <img src="" id="img" class="img" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;">
            <input type="file" name="pathheader" id="pathheader"  class="form-control-file" aria-describedby="fileHelp" style="display:none;">
        </td>
        <td>
            <img src="" id="img2" class="img2" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;">
            <input type="file" name="pathhome" id="pathhome" class="form-control-file" aria-describedby="fileHelp" style="display:none;"><br>
        </td>
    </tr>
    <tr>
        <td>
            <input type="button" name="" value="Seleccionar header" id="browse_file" class="btn btn-danger form-control">
        </td>
        <td>
            <input type="button" name="" value="Seleccionar home" id="browse_file2" class="btn btn-danger form-control">
        </td>
    </tr>
</table>
<br>
<input type="submit" value="Crear Proyecto" id="createprojectsubmit" class="btn btn-danger btn-md">

我的JS代码如下所示:

$("#browse_file").on('click',function(e){
    $("#pathheader").click();
})

$("#browse_file2").on('click',function(e){
    $("#pathhome").click();
})

$("#pathheader").on('change',function(e){
    var fileInput=this;
    if (fileInput.files[0])
        {
            var reader=new FileReader();
            reader.onload=function(e)
            {
                $("#img").attr('src',e.target.result);
            }
            reader.readAsDataURL(fileInput.files[0]);
        }
})

$("#pathhome").on('change',function(e){
    var fileInput=this;
    if (fileInput.files[0])
        {
            var reader=new FileReader();
            reader.onload=function(e)
            {
                $("#img2").attr('src',e.target.result);
            }
            reader.readAsDataURL(fileInput.files[0]);
        }
})

正如你所看到的,我的输入风格显示无,但我在控制器中使用此输入,控制器看起来像这样:

public function storeProject(Request $request)
{
    $project = new Project();
    $project->slug = $request->input("slug");
    //$project->order = $request->input("order");
    $project->order = DB::table('projects')
                  ->where('order', DB::raw("(select max(`order`) from projects)"))
                  ->first()
                  ->order + 1; 
    $project->public = $request->input("public");
    $project->pathheader = $request->file('pathheader');
    $project->pathhome = $request->file('pathhome');
    \Storage::disk('projects')->makeDirectory($project->slug);
    \Storage::disk('projects')->putFileAs($project->slug,$project->pathheader,'header.png');
    \Storage::disk('projects')->putFileAs($project->slug,$project->pathhome,'home.png');
    $project->save();
}

\Storage::disk('projects')->putFileAs($project->slug,$project->pathheader,'header.png');

$project->pathheader没有任何价值,在路径中也是如此。

如何使用display: none;

获取值

如果您不了解或需要更多信息,请询问。

非常感谢,任何帮助都将不胜感激。

0 个答案:

没有答案