我完全是这一切的新手...... 我创建了一个社交网络项目,其中有一个模块允许用户上传照片.. 我在我的大学服务器上托管了这个项目
我使用bitvise客户端使用我的服务器凭据访问该服务器。
我的问题是我不知道如何为远程服务器设置上传机制...在我的localhost中我只是使用
move_uploaded_file($ _ FILES ['文件'] [' tmp_name的值'],$ TARGET_FILE);
功能,但我不知道如何为远程服务器执行此操作...
我通过查看一些教程尝试了FTP,但这对我没用。 在我的项目结构中有一个目录
users / user_id(所有用户的差异)/照片
这里我想放置上传的文件.... 正确的描述与示例和正确的功能可能对我非常有帮助....谢谢
修改 以下是我的代码。
<form class="input-group-btn" method="post" action="editPhotos.php"enctype="multipart/form-data" id="myForm">
<input type="file" name="file" id="imgInp">
<button type="submit" class="btn btn-primary" name="form-submit">Done</button>
</form>
if( isset($_POST['form-submit']) ){
$target_file = "users/".$email."/pictures/Photos/" . basename($_FILES["file"]["name"]);
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
move_uploaded_file($_FILES['file']['tmp_name'],$target_file);
$img =str_replace(" ", "",basename($_FILES["file"]["name"]));
rename($target_file, "users/".$email."/pictures/Photos/".$img);
header('Refresh: 1; url=Photos.php?user='.$email);
}
答案 0 :(得分:0)
使用uploads文件夹的相对路径。例如,如果您的上传文件夹位于当前文件夹之外。然后
$PATH = '/absolute/example/path/to/uploads';//from config file
$target_file = "$PATH/file_name";
move_uploaded_file($_FILES['file']['tmp_name'],$target_file);
以上代码可以在本地和远程服务器上运行。
其他检查如下:
要启用错误处理,请使用上传逻辑中的以下代码:
ini_set('display_errors', 1);
error_reporting(E_ALL);
答案 1 :(得分:0)
小教程如何上传文件。
当然,您需要在encryption
中找到正确的form
和文件类型(省略其他字段,以清除示例):
< form action="upload.php" method="post" enctype="multipart/form-data">< /form>
< input name="test" type=file>
在$_FILES
中,您拥有已上传文件的所有数据。在给定的示例中,我们有一个名为test
的字段。
建议,要始终先检查错误$_FILES['test']['error']
- 您可以在here中找到的值。
如果这是正确的,那么准备上传路径。一些建议:
$_FILES['test']['name']
),那么用户上传第二个文件,同名,您将需要覆盖文件或忽略上传。另一方面,是将数据保存到数据库并从中生成临时名称。如果你有路径,那么你只需要使用move_uploaded_file,但记得检查结果,因为它并不总是会返回true。如果您没有目标文件夹的权限,则可能会出错(您需要对此进行调试)。
我看到你,首先上传文件,然后重命名(然后你应该检查,如果重命名是成功的话)。如果没有必要,请不要扩展此过程。上传最终路径和名称的文件。
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
$fileName = basename($_FILES["file"]["name"]);
$fileName = str_replace(" ", "", $fileName);
$target_file = sprintf(__DIR__ . "/users/%s/pictures/Photos/%s", $email, $fileName);
if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) {
// File was uploaded
header('Refresh: 1; url=Photos.php?user=' . $email);
} else {
// File was not uploaded;
throw new \Exception('File was not uploaded. Check warnings.');
}
}
POST
move_uploaded_file