Недавно я создал форму загрузки, в которой пользователи могут загружать свои файлы на удаленный FTP-сервер. До сих пор все идет хорошо. Однако у меня возникла проблема.
Я хочу убедиться, что когда пользователь загружает свое изображение на удаленный FTP-сервер, оно будет немедленно отображаться на веб-сайте. Как я могу это сделать? Этот вопрос часто задавался по переполнению стека. Все же есть разница. В большинстве случаев человек хотел загрузить файл speci c с удаленного FTP-сервера. Это не так со мной. Я хочу убедиться, что пользователь видит загруженный файл, отображаемый на сайте.
Мой php код для загрузки файла на удаленный FTP-сервер:
<?php
if ( empty( $_FILES['file'] ) ) {
?>
<html>
<head>
</head>
<body>
<form action="" enctype="multipart/form-data" method="post">
<input name="file" type="file"/>
<br>
<input name="submit" type="submit" value="Upload uw album" />
</form>
</body>
</html>
<?php
return;
} else {
?>
<html>
<head>
</head>
<body>
<form action="" enctype="multipart/form-data" method="post">
<input name="file" type="file"/>
<br>
<input name="submit" type="submit" value="Upload uw album" />
</form>
</body>
</html>
<?php
}
$ftp_server = "myserver";
$ftp_user_name = "myuser";
$ftp_user_pass = "mypass";
$source_file = $_FILES['file']['tmp_name'];
$destination_folder = "/public_html/wp/wp-content/plugins/AbonneerProgrammas/Albums";
$destination_file = $destination_folder . "/" . basename($_FILES['file']['name']);
$conn_id = ftp_connect($ftp_server);
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, true);
// check connection
if ((!$conn_id) || (!$login_result)) {
echo "Het spijt ons, er is momenteel geen connectie met de server.";
//echo "Attempted to connect to $ftp_server for user $ftp_user_name";
exit;
} else {
//echo "upload is gelukt";
}
// upload the file
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// check upload status
if (!$upload) {
//
} else {
?>
<meta http-equiv="refresh" content="0; url=https://radioprogrammabank.nl/wp/upload-album/?name=<?php echo urlencode(basename($_FILES['file']['name']));?>">
<?php
echo "<a href=\"$source_file?file=".urlencode($source_file)."\">".htmlspecialchars($source_file)."</a>";
header('Content-Type: application/octet-stream');
echo file_get_contents('ftp://username:password@ftp.example.com/path/' . $_GET["file"]);
echo "upload is gelukt";
}
// close the FTP stream
ftp_close($conn_id);
?>
Мой GUI FTP-клиент - это Filezilla. Я посмотрел на переполнение стека и статьи. Но без какого-либо результата. Надеюсь, вы, ребята, можете мне помочь.
Привет,
Йохан