入力タイプファイルにデフォルト値を設定する

LluísPuigFerrer

注意:

以下の回答は、2009年のレガシーブラウザの状態を反映しています。2017年にJavaScriptを介してファイル入力要素の値を実際に設定できるようになりました。

詳細とデモについては、この質問の回答を参照してください:
プログラムでファイル入力値を設定する方法(つまり、ファイルをドラッグドロップする場合)?

この質問が重複していることは知っていますが、誰かが私を助けてくれるかもしれないと思います。

最初に問題を聞いてみましょう。

名前、順序、パブリック、パスヘッダー、パスホームなど、いくつかのフィールドを更新するフォームがあります。私の質問は次のとおりです。

入力タイプファイルを再度クリックせずに、pathheaderとpathhomeの同じ値でフォームを更新することは可能ですか?

入力タイプファイルは次のようになります。

@if (Storage::disk('projects')->has($project->slug))
    <img src="{{ asset('/storage/projects/'.$project->slug.'/header.png') }}" id="img" class="img" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;">
@else
    <img src="" id="img" class="img" style="width:100%;height:200px;background-color:#ccc;border:2px solid gray;">
@endif
<input type="file" name="pathheader" id="pathheader"  class="form-control-file" aria-describedby="fileHelp" style="display:none;">

したがって、ビューをレンダリングすると、サーバーでビューを見つけて、変更したくない場合はもう一度クリックするのは現実的ではないと思われる画像が表示されます。

あなたの意見を教えてください、そして誰かがそれをする方法を知っているなら私は感謝されます。(いくつかのライブラリまたは他の機能でそれを行う方法を知っている場合は、私に知らせてください。

どうもありがとう。

解決済み

より簡単な方法:コントローラーでデータを不要にします。

関数内:

public function updateProject(Request $request, $id) 
{
    $this->validate($request, array(
        'slug'=> 'required',
        'order'=> 'required',
        'public'=> 'required'
    ));
    $project = Project::find($id);
    $project->slug = $request->input('slug');
    $project->order = $request->input('order');
    $project->public = $request->input('public');
    if ($request->hasFile('pathheader')){
        $project->pathheader = $request->file('pathheader');
        \Storage::disk('projects')->putFileAs($project->slug,$project->pathheader,'header.png');
    }
    if ($request->hasFile('pathhome')){
        $project->pathhome = $request->file('pathhome');
        \Storage::disk('projects')->putFileAs($project->slug,$project->pathhome,'home.png');

    }
    $project->save();
    return redirect()->route('admin.projects.show', $project->id);
}
Romnick Susa |

ブラウザのセキュリティ上の理由から、ファイル入力にデフォルト値を設定することはできません。

より良い方法は、レコードを更新する前に、ユーザーがファイルを選択したかどうかを確認することです。

したがって、更新関数について:

public function update(){
    // Make sure you didn't required the user to select file.
    $attribute = [
        'name' => $request->name,
        'order' => $request->order
    ]
    if($request->hasFile('pathheader')){
        //If user select a file, upload the file 
        //Then you should update your record by 
        //adding fields to your update attribute. 
        $attribute['pathheader'] => $pathheader;

    }
    //otherwise, no changes will happen to your 'pathheader' column.
    DB::table('yourtable')->where('id',$id)->update($attribute);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

日付入力タイプのデフォルト値をToday、Tomorrow、Anydateに設定しますか?

分類Dev

タイプUnionでデフォルト値を設定する

分類Dev

SQLite:デフォルトの入力タイプを `textarea`ではなく` text`に設定する方法

分類Dev

ファイル入力の値を動的に設定する

分類Dev

入力タイプファイルのスタイルを設定する角度

分類Dev

jenkinsパイプラインで入力値がnullの場合に文字列入力のデフォルト値を設定する方法

分類Dev

Sublime Text2でデフォルトの構文を別のファイルタイプに設定する

分類Dev

ReactTestUtilsでHTML5ファイルタイプ入力を設定する方法

分類Dev

多くの設定ファイルに同じ値を入力する方法

分類Dev

Pulseaudioのデフォルトプロファイルを設定する

分類Dev

デフォルトのプロファイルSpringを設定する方法

分類Dev

特定の入力方法をファイルに設定する方法

分類Dev

ファイルタイプに基づいてVSCodeのデフォルトEOLを設定できますか?

分類Dev

データの取得後に入力フィールドのデフォルト値を設定すると、コンテンツがオーバーラップし、「onChange」イベントがトリガーされなくなります

分類Dev

デフォルトの「ファイルに印刷...」設定を変更する方法

分類Dev

useEffectで関数を呼び出した後、antdライブラリの入力フィールド内にデフォルト値を設定する

分類Dev

Jenkinsパイプラインを使用してデフォルト設定で続行するタイムアウト付きの入力ステップ

分類Dev

Ionic入力タイプファイルをボタンとしてスタイル設定する方法

分類Dev

モデルファイルへの挿入にタイムスタンプを設定する方法

分類Dev

タイプ[文字列]のコレクションの要素にデフォルト値を設定する方法は?

分類Dev

cssを使用して入力タイプファイルのスタイルを設定する方法

分類Dev

.vidファイルを開くようにデフォルトのアプリをVLCに設定する

分類Dev

ファイル入力のスタイルを設定する方法は?

分類Dev

.vimrcファイルにgvimフォントを設定する

分類Dev

ユーザーが値を入力すると、jsonファイルからフォームフィールドにデータが入力されます

分類Dev

パスにファイルが存在する場合、自動選択ファイルを入力タイプに設定したい

分類Dev

すべてのSymfonyフォームタイプにデフォルトを設定する

分類Dev

Ubuntuでファイルタイプを開くようにデフォルトのプログラムを設定することはできません

分類Dev

特定のファイルタイプを開くようにデフォルトのプログラムを設定する方法

Related 関連記事

  1. 1

    日付入力タイプのデフォルト値をToday、Tomorrow、Anydateに設定しますか?

  2. 2

    タイプUnionでデフォルト値を設定する

  3. 3

    SQLite:デフォルトの入力タイプを `textarea`ではなく` text`に設定する方法

  4. 4

    ファイル入力の値を動的に設定する

  5. 5

    入力タイプファイルのスタイルを設定する角度

  6. 6

    jenkinsパイプラインで入力値がnullの場合に文字列入力のデフォルト値を設定する方法

  7. 7

    Sublime Text2でデフォルトの構文を別のファイルタイプに設定する

  8. 8

    ReactTestUtilsでHTML5ファイルタイプ入力を設定する方法

  9. 9

    多くの設定ファイルに同じ値を入力する方法

  10. 10

    Pulseaudioのデフォルトプロファイルを設定する

  11. 11

    デフォルトのプロファイルSpringを設定する方法

  12. 12

    特定の入力方法をファイルに設定する方法

  13. 13

    ファイルタイプに基づいてVSCodeのデフォルトEOLを設定できますか?

  14. 14

    データの取得後に入力フィールドのデフォルト値を設定すると、コンテンツがオーバーラップし、「onChange」イベントがトリガーされなくなります

  15. 15

    デフォルトの「ファイルに印刷...」設定を変更する方法

  16. 16

    useEffectで関数を呼び出した後、antdライブラリの入力フィールド内にデフォルト値を設定する

  17. 17

    Jenkinsパイプラインを使用してデフォルト設定で続行するタイムアウト付きの入力ステップ

  18. 18

    Ionic入力タイプファイルをボタンとしてスタイル設定する方法

  19. 19

    モデルファイルへの挿入にタイムスタンプを設定する方法

  20. 20

    タイプ[文字列]のコレクションの要素にデフォルト値を設定する方法は?

  21. 21

    cssを使用して入力タイプファイルのスタイルを設定する方法

  22. 22

    .vidファイルを開くようにデフォルトのアプリをVLCに設定する

  23. 23

    ファイル入力のスタイルを設定する方法は?

  24. 24

    .vimrcファイルにgvimフォントを設定する

  25. 25

    ユーザーが値を入力すると、jsonファイルからフォームフィールドにデータが入力されます

  26. 26

    パスにファイルが存在する場合、自動選択ファイルを入力タイプに設定したい

  27. 27

    すべてのSymfonyフォームタイプにデフォルトを設定する

  28. 28

    Ubuntuでファイルタイプを開くようにデフォルトのプログラムを設定することはできません

  29. 29

    特定のファイルタイプを開くようにデフォルトのプログラムを設定する方法

ホットタグ

アーカイブ