Php 将Windows 8应用程序与Apache服务器连接:(Windows 8中的后台传输)

Php 将Windows 8应用程序与Apache服务器连接:(Windows 8中的后台传输),php,windows,web-services,apache,upload,Php,Windows,Web Services,Apache,Upload,我在windows应用商店上传文件时遇到一些问题。我的状态是200,但是当我检查服务器时,没有上传任何文件。我使用的是apache服务器 我已经检查了Microsoft的示例,但它可以与ASP.Net服务器一起工作 有什么解决方案吗?我需要一次上传一个文件,它对我很有效,请告诉我: upload.php: C代码: 我使用了与SDK示例相同的代码。数据/文件夹位于upload.php的同一文件夹中,我的Uri为http://mySite/myApp/upload.php好的,我找到了一个完整的解

我在windows应用商店上传文件时遇到一些问题。我的状态是200,但是当我检查服务器时,没有上传任何文件。我使用的是apache服务器 我已经检查了Microsoft的示例,但它可以与ASP.Net服务器一起工作


有什么解决方案吗?

我需要一次上传一个文件,它对我很有效,请告诉我:

upload.php:

C代码:


我使用了与SDK示例相同的代码。数据/文件夹位于upload.php的同一文件夹中,我的Uri为http://mySite/myApp/upload.php好的,我找到了一个完整的解决方案。基本上,你需要上传多个部分在你的SDK样本并不重要,如果它是C或C++,关键是PHP文件。这是我处理所有选定文件的PHP文件。这是一种魅力!此外,如果出现错误1,则表示在php.ini中,最大文件上载大小太小!所以也要注意这一点。希望它能有所帮助,我确实花了一些努力来完成这件事

<?php

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");

foreach ($_FILES as $name) {
    if ($_FILES[$name]["error"] > 0){
        fwrite($fh, "Error: " . $_FILES[$name]['error'] . " on file: " . $_FILES[$name]['name']); // log the error
    }
    $target = "data/"; 
    $target = $target . basename( $_FILES[$name]['name']) ; 
    if(move_uploaded_file($_FILES[$name]['tmp_name'], $target)) 
    {
        echo "The file ". basename( $_FILES[$name]['name']). " has been uploaded"; // succes, do whatever you want
    } 
    else {
        fwrite($fh, "File movement error on file: " . $_FILES[$name]['name']); // log the error
    }       
}

fclose($fh);
?>

    private async void StartMultipartUpload_Click(object sender, RoutedEventArgs e)
    {
        Uri uri;
        if (!Uri.TryCreate(serverAddressField.Text.Trim(), UriKind.Absolute, out uri))
        {
            rootPage.NotifyUser("Invalid URI.", NotifyType.ErrorMessage);
            return;
        }

        // Verify that we are currently not snapped, or that we can unsnap to open the picker.
        if (ApplicationView.Value == ApplicationViewState.Snapped && !ApplicationView.TryUnsnap())
        {
            rootPage.NotifyUser("File picker cannot be opened in snapped mode. Please unsnap first.", NotifyType.ErrorMessage);
            return;
        }

        FileOpenPicker picker = new FileOpenPicker();
        picker.FileTypeFilter.Add("*");
        IReadOnlyList<StorageFile> files = await picker.PickMultipleFilesAsync();

        if (files.Count == 0)
        {
            rootPage.NotifyUser("No file selected.", NotifyType.ErrorMessage);
            return;
        }

        List<BackgroundTransferContentPart> parts = new List<BackgroundTransferContentPart>();
        for (int i = 0; i < files.Count; i++)
        {
            BackgroundTransferContentPart part = new BackgroundTransferContentPart("Filename", files[i].Name);
            part.SetFile(files[i]);
            parts.Add(part);
        }

        BackgroundUploader uploader = new BackgroundUploader();
        UploadOperation upload = await uploader.CreateUploadAsync(uri, parts);

        String fileNames = files[0].Name;
        for (int i = 1; i < files.Count; i++)
        {
            fileNames += ", " + files[i].Name;
        }

        Log(String.Format("Uploading {0} to {1}, {2}", fileNames, uri.AbsoluteUri, upload.Guid));

        // Attach progress and completion handlers.
        await HandleUploadAsync(upload, true);
    }
<?php

$myFile = "testFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");

foreach ($_FILES as $name) {
    if ($_FILES[$name]["error"] > 0){
        fwrite($fh, "Error: " . $_FILES[$name]['error'] . " on file: " . $_FILES[$name]['name']); // log the error
    }
    $target = "data/"; 
    $target = $target . basename( $_FILES[$name]['name']) ; 
    if(move_uploaded_file($_FILES[$name]['tmp_name'], $target)) 
    {
        echo "The file ". basename( $_FILES[$name]['name']). " has been uploaded"; // succes, do whatever you want
    } 
    else {
        fwrite($fh, "File movement error on file: " . $_FILES[$name]['name']); // log the error
    }       
}

fclose($fh);