Php 无法将文件从android 4.4上载到webview

Php 无法将文件从android 4.4上载到webview,php,file-upload,cordova,webview,android-4.4-kitkat,Php,File Upload,Cordova,Webview,Android 4.4 Kitkat,我在谷歌和这里搜索了很多东西,但真的找不到在android 4.4中使用HTTP请求、JavaScript或phone gap上传的方法 我尝试使用POST使用HTTP请求上传 这是我的密码 public class Upload_File { private int serverResponseCode; private String serverResponseMessage; public void up_myfile(String pathToOurFile , String url

我在谷歌和这里搜索了很多东西,但真的找不到在android 4.4中使用HTTP请求、JavaScript或phone gap上传的方法 我尝试使用POST使用HTTP请求上传 这是我的密码

public class Upload_File {

private int serverResponseCode;
private String serverResponseMessage;

public void up_myfile(String pathToOurFile , String urlServer) {
    HttpURLConnection connection = null;
    DataOutputStream outputStream = null;
    DataInputStream inputStream = null;


    String lineEnd = "\r\n";
    String twoHyphens = "--";
    String boundary =  "*****";

    int bytesRead, bytesAvailable, bufferSize;
    byte[] buffer;
    int maxBufferSize = 1*1024*1024;

    try
    {
    FileInputStream fileInputStream = new FileInputStream(new File(pathToOurFile) );

    URL url = new URL(urlServer);
    connection = (HttpURLConnection) url.openConnection();

    // Allow Inputs & Outputs
    connection.setDoInput(true);
    connection.setDoOutput(true);
    connection.setUseCaches(false);

    // Enable POST method
    connection.setRequestMethod("POST");

    connection.setRequestProperty("Connection", "Keep-Alive");
    connection.setRequestProperty("Content-Type", "multipart/form-data;boundary="+boundary);

    outputStream = new DataOutputStream( connection.getOutputStream() );
    outputStream.writeBytes(twoHyphens + boundary + lineEnd);
    outputStream.writeBytes("Content-Disposition: form-data; name=\"userfile\";filename=\"" + pathToOurFile +"\"" + lineEnd);
    outputStream.writeBytes(lineEnd);

    bytesAvailable = fileInputStream.available();
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    buffer = new byte[bufferSize];

    // Read file
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);

    while (bytesRead > 0)
    {
    outputStream.write(buffer, 0, bufferSize);
    bytesAvailable = fileInputStream.available();
    bufferSize = Math.min(bytesAvailable, maxBufferSize);
    bytesRead = fileInputStream.read(buffer, 0, bufferSize);
    }

    outputStream.writeBytes(lineEnd);
    outputStream.writeBytes(twoHyphens + boundary + twoHyphens + lineEnd);

    // Responses from the server (code and message)
    serverResponseCode = connection.getResponseCode();
    serverResponseMessage = connection.getResponseMessage();

    fileInputStream.close();
    outputStream.flush();
    outputStream.close();
    }
    catch (Exception ex)
    {
        Log.e("MYAPP", "exception", ex);
    }
}
} 在服务器端:

if (isset($_FILES)) {
         if (is_uploaded_file($_FILES['userfile'])) {
             if (0 === $_FILES['userfile']['error']) {
                        echo "there is a file"; 
                    }else{echo "mafeesh file error number ".$_FILES['userfile']['name']."</br>";}   

                }else{echo "there is NO a file<br>";}   

    }

    $filename  = basename($_FILES['userfile']['name']);
    $extension = pathinfo($filename, PATHINFO_EXTENSION);
    $new= $id.'.'.$extension;
    echo "test uploading !!! ".$_FILES['userfile']['tmp_name']."</br>";
    if(move_uploaded_file($_FILES["userfile"]["tmp_name"],"photos/" .$new)){
    echo "The file ".  $filename. " has been uploaded";
    } else{
     echo "There was an error uploading the file ??, please try again!";
    }   
if(isset($\u文件)){
如果(是否上载了文件($文件['userfile'])){
如果(0==$\u文件['userfile']['error']){
回声“有一个文件”;
}else{echo“mafeesh文件错误号”。$\u文件['userfile']['name'].“
”;} }否则{echo“没有文件
”;} } $filename=basename($_文件['userfile']['name']); $extension=pathinfo($filename,pathinfo_extension); $new=$id....$extension; echo“测试上传!!!”$\u文件['userfile']['tmp\u name']。“
”; 如果(移动上传的文件($文件[“用户文件”][“tmp文件名”],“照片/”$新)){ 回显“文件”.$filename.“已上载”; }否则{ echo“上传文件时出错???,请重试!”; }
$\u文件['userfile']['name']为空,未上载任何内容

帮助我迷路的人:(:(

如果是phonegap项目或应用程序,请使用phonegap文件传输方法,首先需要它将此插件安装到phonegap项目中

cordova plugin add org.apache.cordova.file-transfer



// !! Assumes variable fileURL contains a valid URL to a text file on the device,
//    for example, cdvfile://localhost/persistent/path/to/file.txt

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

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

var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURL.substr(fileURL.lastIndexOf('/') + 1);
options.mimeType = "text/plain";

var params = {};
params.value1 = "test";
params.value2 = "param";

options.params = params;

var ft = new FileTransfer();
ft.upload(fileURL, encodeURI("http://some.server.com/upload.php"), win, fail, options);

您的is_uploaded_文件不正确。它需要的是路径,而不是表示上载文件的数组。
is_uploaded_文件($\u POST['userfile']['tmp_name'])
应该是正确的。无论如何,这是一个毫无意义的测试。如果上传失败,那么就不会有一个文件供is_上传的文件进行测试。纠正了条件,但没有办法。嗯,好吧,但是我的项目不是phonegap项目,那么有没有办法使我当前的项目成为phonegap项目,或者我必须创建一个新的phonegap项目hnk转换是困难的