发行';s使用Vb.net作为客户端,PHP作为服务器(ï;»;¿;)
所以我得到了这些密码发行';s使用Vb.net作为客户端,PHP作为服务器(ï;»;¿;),php,vb.net,Php,Vb.net,所以我得到了这些密码 <?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'][
<?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);
}
?>
它工作得很好,唯一的一点是我得到的结果总是在每个文件前面加上这个。(它只是像那样回显,它确实正确地上传到我的服务器上)
e、 g/uploads/ï»561708579306.png,而它必须是/uploads/561708579306.png
所以上传是正确的,它给出了正确的名称,即/uploads/561708579306.png,但是echo似乎在返回/uploads/ï»561708579306.png
有人有线索吗
诚恳地,
Jordy是的,这是一个BOM问题 我有两种想法 不带BOM保存upload.php(以及所有其他包含的php) 我知道的唯一方法是用记事本++保存它,然后从“编码”选项卡中选择“使用UTF-8编码而不使用BOM” 在echo之前删除任何其他输出 这似乎比另一种解决方案更好。 添加
ob_clean()代码>在每次回显之前清除上面行中的数据
希望有帮助。看起来像是BOM(字节顺序标记)它是可修复的吗?如何修复。您是否尝试过echo$uploadfile;相反无论如何,它似乎更准确。
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)