反応アプリを介してマングースを使用してmongodbデータベースに画像をアップロードします

突然

見つかったオブジェクトのReactアプリを作成していて、ユーザーがこれらのオブジェクトの写真をアップロードできるようにしたい

axiosを使用したPOSTリクエストを介してマングースサーバーに画像を送信しようとしましたが、機能しません。

だからこれは私がプレビューでreactコンポーネントに画像を保存する方法です:

handleImage(event) {
  let reader = new FileReader();
  let file = event.target.files[0];
  reader.onloadend = () => {
    this.setState({
      image: file,
      imagePreviewUrl: reader.result
    });
  }

そしてこれは私がそれを送る方法です:

reader.readAsDataURL(file)

axios.post("/api/putData", {
  id: idToBeAdded,
  author : "TODO", //TODO
  title: infos.title,
  type: infos.type,
  reward: this.state.reward,
  description: infos.description,
  image: infos.image,
});

これが反対側のリクエストを処理するための私のコードです:

router.post("/putData", (req, res) => {
  let data = new Data();

  const { id, author, title, type, reward, description, image } = req.body;

  /*if ((!id && id !== 0) || !message) {
    return res.json({
      success: false,
      error: "INVALID INPUTS"
    });
  }*/
  data.title = title;
  data.type = type;
  data.reward = reward;
  data.description = description;
  data.author = author;
  data.id = id;
  data.image.data = image;
  data.image.contentType = 'image/png'
  data.save(err => {
    if (err) return res.json({ success: false, error: err });
    return res.json({ success: true });
  });
});

したがって、この画像はフォームの一部であり、画像なしで送信すると、画像なしでDBに新しいドキュメントがあります(これは問題ありません)が、画像を読み込もうとすると、ドキュメントは作成されません。

私に何ができる ?

ラジャン・ラガ

multipart / form-dataを処理するには、サーバーにmulterが必要です画像を2つの方法で保存して、DBに保存する文字列に保存し、必要に応じてその文字列をデコードできます。または、画像をサーバーに保存し、そのURLをDBに保存することもできます。したがって、画像を使用する必要がある場合は、そのためのURLを使用できます。
サーバーに画像をアップロードするには、

import multer from 'multer'

var storage = multer.diskStorage({
  destination: function (req, file, cb) {
            var dirName =path.join(process.cwd(), './files/')
            console.log(dirName)
            if (!fs.existsSync(dirName)){
                    fs.mkdirSync(dirName);
            }
                cb(null,dirName)
        }
  },
  filename: function (req, file, cb) {
        cb(null, Date.now()+'-'+file.originalname)
  }


  })
var upload = multer({ storage: storage })

router.post("/putData",upload.single('files'), (req, res) => {
  console.log(reqs.file.destination) // image url
  console.log(JSON.parse(req.body)) // other things
})

フロントエンドに追加

handleSubmit(e){
        var fd = new FormData()
        fd.append('files',this.state.files[i][0],this.state.files[i][0].name)
        var statebody = Object.assign({},this.state,{files:null})
        fd.append('state',JSON.stringify(statebody))
        axios.post('/api/',fd)
                    .then((res)=>{
            console.log(res)
        }).catch((e)=>{
            console.log(e)
        })
    }

    handleFiles(e){
        this.setState({files:e.target.files})
    }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

laravel画像をアップロードしてMongoDbデータベースに保存

分類Dev

MYSQLデータベースに画像をアップロードし、PHPとSwiftを使用して表示します

分類Dev

Struts2を使用して画像パスをデータベースにアップロードします

分類Dev

BLOBスロー例外を使用してデータベースに画像をアップロードする

分類Dev

画像をアップロードし、reactを使用してデータベースに保存する方法

分類Dev

反応を介してlaravelストレージにビデオをアップロードする方法は?

分類Dev

Laravelのディレクトリに画像をアップロードしようとしています(データベースにアクセスします)

分類Dev

反応アプリでデータベースから画像をフェッチして表示する方法

分類Dev

springboot、jpa、thymeleafを使用してデータベースに画像をアップロードする

分類Dev

AjaxとCodeigniterを使用してデータベースに画像をアップロードする

分類Dev

reactjsとphpを使用して画像をデータベースにアップロードする方法は?

分類Dev

C#を使用して画像をmysqlデータベースにアップロードする方法は?

分類Dev

FileUploadとStockを使用してデータベースに画像をアップロードする

分類Dev

Codeigniter3.0.1を使用してデータベースに画像をアップロードする

分類Dev

laravel5.7を使用して複数の画像をデータベースにアップロードする

分類Dev

Pythonを使用して.jsonファイルをfirebaseデータベースにアップロードします

分類Dev

MySQLデータベースにアップロードされた画像のURLを更新しています

分類Dev

ハッシュを使用するWebサイトデータベースからユーザーを使用してwinformsアプリにログインします

分類Dev

反応ネイティブエキスポ画像を使用して画像をローカルサーバーPHP /データベースMySQLにアップロードするにはどうすればよいですか?

分類Dev

Azure SQLデータベース:SQLスクリプトを介してデータベースをクリーンアップまたは復元します

分類Dev

画像は画像ディレクトリにアップロードされていませんが、データベースに名前を保存しています

分類Dev

Laravelを使用してCSVコンテンツをデータベースにアップロードする

分類Dev

画像を保存し、ビットマップを使用してsqliteデータベースまたはドローアブルフォルダから取得する方法

分類Dev

コードファーストメソッドでIDを使用して、データベースから画像をアップロード、保存、取得します

分類Dev

.NET Coreアプリを介してPostGISデータベースに空間データ(.shp)をアップロードする

分類Dev

PHPを介してデータベースからデータをアップロードする

分類Dev

ストアドプロシージャを介してデータのリストをdapperに返します

分類Dev

sqliteデータベースを使用して画像をアップロードおよび取得する方法

分類Dev

Laravel 5.5:データベースデータ(スキーマではありません!)をクリーンアップ/ドロップし、シーダーを使用して自動インクリメントをリセットする方法

Related 関連記事

  1. 1

    laravel画像をアップロードしてMongoDbデータベースに保存

  2. 2

    MYSQLデータベースに画像をアップロードし、PHPとSwiftを使用して表示します

  3. 3

    Struts2を使用して画像パスをデータベースにアップロードします

  4. 4

    BLOBスロー例外を使用してデータベースに画像をアップロードする

  5. 5

    画像をアップロードし、reactを使用してデータベースに保存する方法

  6. 6

    反応を介してlaravelストレージにビデオをアップロードする方法は?

  7. 7

    Laravelのディレクトリに画像をアップロードしようとしています(データベースにアクセスします)

  8. 8

    反応アプリでデータベースから画像をフェッチして表示する方法

  9. 9

    springboot、jpa、thymeleafを使用してデータベースに画像をアップロードする

  10. 10

    AjaxとCodeigniterを使用してデータベースに画像をアップロードする

  11. 11

    reactjsとphpを使用して画像をデータベースにアップロードする方法は?

  12. 12

    C#を使用して画像をmysqlデータベースにアップロードする方法は?

  13. 13

    FileUploadとStockを使用してデータベースに画像をアップロードする

  14. 14

    Codeigniter3.0.1を使用してデータベースに画像をアップロードする

  15. 15

    laravel5.7を使用して複数の画像をデータベースにアップロードする

  16. 16

    Pythonを使用して.jsonファイルをfirebaseデータベースにアップロードします

  17. 17

    MySQLデータベースにアップロードされた画像のURLを更新しています

  18. 18

    ハッシュを使用するWebサイトデータベースからユーザーを使用してwinformsアプリにログインします

  19. 19

    反応ネイティブエキスポ画像を使用して画像をローカルサーバーPHP /データベースMySQLにアップロードするにはどうすればよいですか?

  20. 20

    Azure SQLデータベース:SQLスクリプトを介してデータベースをクリーンアップまたは復元します

  21. 21

    画像は画像ディレクトリにアップロードされていませんが、データベースに名前を保存しています

  22. 22

    Laravelを使用してCSVコンテンツをデータベースにアップロードする

  23. 23

    画像を保存し、ビットマップを使用してsqliteデータベースまたはドローアブルフォルダから取得する方法

  24. 24

    コードファーストメソッドでIDを使用して、データベースから画像をアップロード、保存、取得します

  25. 25

    .NET Coreアプリを介してPostGISデータベースに空間データ(.shp)をアップロードする

  26. 26

    PHPを介してデータベースからデータをアップロードする

  27. 27

    ストアドプロシージャを介してデータのリストをdapperに返します

  28. 28

    sqliteデータベースを使用して画像をアップロードおよび取得する方法

  29. 29

    Laravel 5.5:データベースデータ(スキーマではありません!)をクリーンアップ/ドロップし、シーダーを使用して自動インクリメントをリセットする方法

ホットタグ

アーカイブ