我自己回答了这个问题,这样其他人就不会遇到我遇到的问题。
问问题
1512 次
1 回答
2
客户端(Javascript 代码):
在服务器上使用 laravel 4 时,我花了一段时间才弄清楚如何在 phonegap 中使用文件上传功能。这适用于可能正在寻求帮助的其他人:
确保:
- public/images(或您希望上传的任何其他目标文件夹 fie 文件夹是可写的,否则您将收到错误代码: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 回答