1

他の人が私がした問題に直面しないように、私はこの質問に自分で答えました。

4

1 に答える 1

2

クライアント側 (Javascript コード) : サーバーで laravel 4 を使用しているときに phonegap でファイル アップロード機能を使用する方法を理解するのにしばらく時間がかかりました。これは、助けを求めている可能性のある他の人のためのものです。次の

ことを確認してください。

  • public/images (または、ファイル フォルダーをアップロードするその他の宛先フォルダーが書き込み可能であるか、エラー コード : 1が表示されます)
  • options.fileKeyの値は一致する必要がありますInput::file(options.fileKey)->move()
  • 投稿リクエストを行います。

$('.upload').on('クリック',function() {

              navigator.camera.getPicture(cameraSuccess,cameraFail,
                {
                  quality: 50,
                  destinationType: Camera.DestinationType.FILE_URI,
                  mediaType: Camera.MediaType.PICTURE,
                  sourceType : Camera.PictureSourceType.PHOTOLIBRARY });

        });

  function cameraSuccess(imageURI)
          {

              //set file upload options
               var options = new FileUploadOptions();

                    options.fileKey="file";
                    options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
                    options.mimeType="image/jpeg";
                    options.chunkedMode = false;


                    var ft = new FileTransfer();

                    ft.upload(imageURI, encodeURI(url+'/file-upload'), win, fail, options);


            function win(r) {
                console.log("Code = " + r.responseCode);
                console.log("Response = " + r.response);
                console.log("Sent = " + r.bytesSent);
            }

            function fail(error) {

                console.log("An error has occurred: Code = " + error.code);
                console.log("upload error source " + error.source);
                console.log("upload error target " + error.target);
            }

サーバー側 (Laravel) コード

Route::post('/file-upload',function()
{
    //I am storing the image in the public/images folder 
    $destinationPath = 'images/';

    $newImageName='MyImage.jpg';

    //Rename and move the file to the destination folder 
    Input::file('file')->move($destinationPath,$newImageName);

}

サーバー側で必要なのはそれだけです。アップロードが成功すると、成功コールバック関数winが実行されます。

于 2013-10-08T17:25:18.983 に答える