如何在cordova上传到服务器后获取图像名称

时间:2016-06-07 18:37:09

标签: jquery cordova

嘿伙计们我正在使用jquery,ajax和html。这是我的上传照片

    function uploadPhoto(imageURI) {
         if (imageURI.substring(0,21)=="content://com.android") {
          photo_split=imageURI.split("%3A");
          imageURI="content://media/external/images/media/"+photo_split[1];
        }
        var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
        //alert(options.fileName);
        options.mimeType="image/jpeg";

        var params = new Object();
        params.value1 = "test";
        params.value2 = "param";

        options.params = params;
        options.chunkedMode = false;

        var ft = new FileTransfer();
        ft.upload(imageURI, host+"/skripsitemplate/php/upload.php", win, fail, options);
    }

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

此代码工作正常。但我不知道如何获取已上传到服务器的图像名称。图像名称将上传到数据库。这是我的upload.php

<?php
print_r($_FILES);
$new_image_name = "foto".rand(1,1000)."_".date("Y-m-d-h-i-s").".jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "../web/uploads/".$new_image_name);
echo $new_image_name;
?>

我真的是关于cordova和phonegap事情的新手。谢谢你们,祝你们度过愉快的一天

1 个答案:

答案 0 :(得分:2)

根据您的PHP代码,上传的图像的文件名将作为 function win(r) { console.log("Code = " + r.responseCode); console.log("Response = " + r.response); console.log("Sent = " + r.bytesSent); alert("filename is" + r.response); // <-- this is your filename } 中的响应回复,您可以在win函数中将其作为对象响应进行访问:

<?php
// print_r($_FILES); // <---- remove this 
$new_image_name = "foto".rand(1,1000)."_".date("Y-m-d-h-i-s").".jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "../web/uploads/".$new_image_name);
echo $new_image_name;
?>

但是,您需要删除$ _FILES对象上的print_r函数,因为它将提供不需要的额外输出。

*