php - 如何将图像文件从 PC(本地主机)上传到 PHP 中位于服务器(例如 godaddy.com)上的目录?
问题描述
我想将图像文件从我的客户端 PC(即 localhost)上传到位于远程服务器上的目录(即 godaddy.com)。我怎么能用 PHP 做到这一点?
我尝试从本地主机上传到本地主机本身的目录。它在那里工作正常,但不适用于远程服务器。
下面是html代码:
<html>
<body>
<form action="upload_file.php" method="POST" enctype="multipart/form-data">
Browse for File to Upload : <br>
<input name="file" type="file" id="file"><br>
<input type="submit" id="u_button" name="u_button" value="Upload the file">
</form>
</body>
以下是我的 PHP 代码:
<?php
$file_result = "";
if($_FILES['file']['error'] > 0){
$file_result .= "No File uploaded or invalid File ";
$file_result .= "Error Code: ".$_FILES["file"]["error"]."<br>";
}
else{
$file_result .=
"Upload:" . $_FILES["file"]["name"]."<br>".
"Type:" . $_FILES["file"]["type"] . "<br>" .
"Size:" . ($_FILES["file"]["size"]/1024) . " Kb<br>" .
"Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
move_uploaded_file($_FILES["file"]["tmp_name"],
"onenetwork.ddns.net/api/profile_images/" . $_FILES["file"]["name"]);
$file_result .= "File uploaded successfully";
}
?>
以下是我得到的错误:
Warning: move_uploaded_file(onenetwork.ddns.net/api/profile_images/hala-
madrid-wallpaper-hd-wallpapers.jpg): failed to open stream: No such file
or directory in C:\xampp\htdocs\upload_file.php on line 16
Warning: move_uploaded_file(): Unable to move 'C:\xampp\tmp\phpBFF0.tmp'
to 'onenetwork.ddns.net/api/profile_images/hala-madrid-wallpaper-hd-
wallpapers.jpg' in C:\xampp\htdocs\upload_file.php on line 16
我希望文件成功上传。请帮帮我。
解决方案
- 您无法将文件移动到
onenetwork.ddns.net/api/profile_images/hala-madrid-wallpaper-hd-wallpapers.jpg
. 那是一个 URL,你需要在服务器上指定一个合适的目录PATH。通常它会像
dirname(__FILE__).'/api/profile_images/'.$_FILES["file"]["tmp_name"]
您不能只在本地 xampp 安装上运行脚本并期望它能够上传到 Internet 上的服务器。您需要将
upload_file.php
脚本上传到后面的服务器并从http://onenetwork.dns.net/upload_file.phponenetwork.dns.net
运行它这样做有很多安全问题 - 您需要阻止人们上传错误类型的文件(检查文件的 MIME 类型),并且您需要确保他们无法上传到您的目录不希望他们。要在 Internet 服务器上使用它,您必须先花一些时间使其安全,除非您想被黑客入侵。
推荐阅读
- c++ - 如何添加预防措施以绕过未注册的 Microsoft.ACE.OLEDB.12.0?
- jquery - 无法从 Zend Framework 3 向 Ajax 调用发送 JSON 响应
- c# - Entity Framework core 3.1.1 多级继承
- docker - 通过 Docker 日志记录数据 - .NET Core 3.1 Filebeat ELK
- wso2 - 将 SOAP 消息体发送到端点
- database - VB 如何定位 Access 数据库中的特定表
- postgresql - 使用 make_solid() PostGIS 从顶点表创建 polyhedralsurfaceZ
- javascript - 使用车把编写 javascript 文件的源代码会破坏网站
- variables - wix 工具集检测 32bit / 64bit 系统
- python - 在 Python 中将字符串分成两部分