问题使用 Vb.net 作为客户端,PHP 作为服务器 ()



所以我得到了这些代码。

<?php
    $uploaddir = "upload/";
    if(is_uploaded_file($_FILES['file']['tmp_name'])) {
        $name = rand(1,1000000000000);
        $uploadfile = $uploaddir . basename($name . ".png");
        if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
            echo $name . ".png";
        }
        else {
            print_r($_FILES);
        } 
    }
    else {
        echo "Upload Failed!!!";
        print_r($_FILES);
    }
?>

这是我 VB.NET 代码。

Dim Client As System.Net.WebClient = New System.Net.WebClient
Client.Headers.Add("Content-Type", "binary/octet-stream")
Dim result() As Byte = Client.UploadFile("/uploading/upload.php", "POST", filename)
Dim s As String = System.Text.Encoding.UTF8.GetString(result, 0, result.Length)

它工作正常,唯一的问题是我得到的结果总是在每个文件前面添加它。(它只是像那样回声,它确实可以正确上传到我的服务器上)例如/uploads/561708579306.png 虽然它必须是/uploads/561708579306.png所以上传是正确的,它给出了正确的名称,即/uploads/561708579306.png,但回声似乎正在返回/uploads/561708579306.png

有人知道吗?

真诚地,乔迪

是的,这是一个 BOM 问题。

我想到两种方法。

保存上传.php(以及所有其他包含的 PHP),无需 BOM

我知道如何保存的唯一方法是使用记事本++保存它,然后从编码选项卡中选择"以UTF-8编码而不带BOM"。

在回显之前删除任何其他输出

哪个似乎比另一个解决方案更好。在每次回显之前添加ob_clean();以清理上行的数据。

希望对您有所帮助。

相关内容

最新更新