phpnegap文件上传
程序员文章站
2022-05-03 19:46:47
...
phonegap文件上传(Java,PHP)
phpnegap文件上传
phonegap中的FileTransfer对象介绍:
http://docs.phonegap.com/en/1.6.1/cordova_file_file.md.html#FileTransfer
?
今天的代码为同学所整理。在此记下来,供以后参考
?
FileTransfer?is an object that allows you to upload files to a server or download files from a server.
?
用于传文件到服务器端
?
它里面有示例,写得已经是非常的详细,其中有一段:
var options = new FileUploadOptions();options.fileKey="file";options.fileName=fileURI.substr(fileURI.lastIndexOf('/')+1);options.mimeType="text/plain";
?
前端的完整版可以参考:http://www.oschina.net/question/200138_34919
?
今天在做图片上传的时候,怎整也无法在后端获取文件流,其中的Java逻辑如下:
int MAX_SIZE = 102400 * 102400; DataInputStream in = null; FileOutputStream fileOut = null; String contentType = request.getContentType(); try { if (contentType.indexOf("multipart/form-data") >= 0) { in = new DataInputStream(request.getInputStream()); int formDataLength = request.getContentLength(); if (formDataLength > MAX_SIZE) { return; } byte dataBytes[] = new byte[formDataLength]; int byteRead = 0; int totalBytesRead = 0; while (totalBytesRead?后来才发现,原来是少了一个致命的参数:options.chunkedMode = false;
?
关于chunkedMode的解析,请看:http://www.issociate.de/board/post/368589/How_to_force_the_apache_transfer_the_data_in_chunked_mode?.html
?
大意是:如果文件长度无法预知时,使用chuckedMode模式传输,现在传输的是图片,大小已经知道,不知道为何apache服务器处理不过来,一定要将chunkedMode设成false,至此上传成功,感觉同学指点
?
为了这个参数,我还对比了php版本的文件上传:php的server端这样写的:
// If retrieving an imageelse if (isset($_GET['image'])) { $file = $dirname."/".$_GET['image']; // Specify as jpeg header('Content-type: image/jpeg'); // Resize image for mobile list($width, $height) = getimagesize($file); $newWidth = 120.0; $size = $newWidth / $width; $newHeight = $height * $size; $resizedImage = imagecreatetruecolor($newWidth, $newHeight); $image = imagecreatefromjpeg($file); imagecopyresampled($resizedImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height); imagejpeg($resizedImage, null, 80); }
下一篇: 运用PHP对配置文件进行修改