如何在不使用html的情况下单独使用url在php中上载文件?

如何在不使用html的情况下单独使用url在php中上载文件?,php,http,Php,Http,您不能使用HTTP-GET上载文件!您必须在http正文中随请求发送文件。因此,在大多数情况下,HTTP POST方法都是用于 C#堆栈溢出解决方案: 在Stackoverflow上使用cURL的PHP解决方案: 将这些内容保存到任何php文件中,而不是每当您点击此url并使用f=链接指向该文件时,它将该文件保存到您的特定文件夹中,我正在使用此php文件所在的当前文件夹 没有安全检查,因此它可以抓取任何文件,确保添加最终检查以执行身份验证,并避免注入脚本 <?php include_on

您不能使用HTTP-GET上载文件!您必须在http正文中随请求发送文件。因此,在大多数情况下,HTTP POST方法都是用于

C#堆栈溢出解决方案:

在Stackoverflow上使用cURL的PHP解决方案:


将这些内容保存到任何php文件中,而不是每当您点击此url并使用f=链接指向该文件时,它将该文件保存到您的特定文件夹中,我正在使用此php文件所在的当前文件夹

没有安全检查,因此它可以抓取任何文件,确保添加最终检查以执行身份验证,并避免注入脚本

<?php
include_once 'dbconfig.php';
?>
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr> 
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"> 
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>

<?php

$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}

$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed'); 
include 'library/closedb.php';

echo "<br>File $fileName uploaded<br>";

?>
希望这对你有帮助


关于

您想要C#或PHP中的解决方案?我想要解决方案PHP(更好),因为C#在unityso中受到限制,如果我理解正确,您想要上传的结果是文件名(或路径和名称)而不是其他内容?是的,我需要使用URL上传文件,就像在PHP中使用$#u GET命令一样。不是通过在http中单击browse按钮,我不需要http部分。我认为PHP curl很好,但我仍然不明白如何在我的上下文中使用它。你能告诉我如何在我的代码中使用它吗?我在phpac方面非常糟糕。如果你注意到我在代码中已将文件保存在数据库中,实际上不需要将文件保存在某个位置,但是你正确地理解了我的URL部分!!但是如何让我的代码识别文件,因为我已经在使用$\u文件了,如何将文件发布到“userfile”文件??
$file = $_GET['f']; 
$res = explode('/',parse_url($file)['path']);   
$filename = $res[count($res)-1];    
file_put_contents($filename,file_get_contents($file));