[英]Upload file to Amazon EC2 server from website by PHP
我有一个网站(bedatify.com),我想制作一个页面,人们可以在其中上传其图像到我的Amazon EC2服务器。 我检查了类似的问题,例如“ 无法在Amazon EC2上上传文件-php”以及如何将文件上传到Amazon EC2,但我不知道如何管理它! 这一段f代码是一个好的开始吗? 我应该怎么做才能让用户将图片从我的网站直接上传到我的EC2服务器?
<?php
if(isset($_POST['image'])){
echo "in";
$image = $_POST['image'];
upload($_POST['image']);
exit;
}
else{
echo "image_not_in";
exit;
}
function upload($image){
$now = DateTime::createFromFormat('U.u', microtime(true));
$id = "pleeease";
$upload_folder = "/var/www/html/upload";
$path = "$upload_folder/$id.jpg";
if(file_put_contents($path, base64_decode($image)) != false){
echo "uploaded_success"
}
else{
echo "uploaded_failed";
}
}
?>
提示:这是S3的完美用例。
因此,请在您的Php后端中从S3上传和检索它。 如果将其上传到EC2实例,则静态文件会填满您的实例空间。 如果实例被终止怎么办?
您可以使用一个PHP SDK: https : //aws.amazon.com/de/sdk-for-php/
一个例子是:
use Aws\S3\MultipartUploader;
use Aws\Exception\MultipartUploadException;
$uploader = new MultipartUploader($s3Client, '/path/to/large/file.zip', [
'bucket' => 'your-bucket',
'key' => 'my-file.zip',
]);
try {
$result = $uploader->upload();
echo "Upload complete: {$result['ObjectURL']}\n";
} catch (MultipartUploadException $e) {
echo $e->getMessage() . "\n";
}
希望对您有所帮助!
多米尼克
uploadfile.php
<?php
$IAM_KEY = 'xxxx';
$IAM_SECRET = 'xxxx';
$bucket = 'xxxx';
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$s3 = new S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => [
'key' => $IAM_KEY,
'secret' => $IAM_SECRET
]
]);
$file = $_FILES["fileToUpload"]["tmp_name"];
try {
// Upload data.
$result = $s3->putObject([
'Bucket' => $bucket,
'Key' => 'xxx',
'SourceFile' => $file
]);
// Print the URL to the object.
} catch (S3Exception $e) {
echo $e->getMessage() . PHP_EOL;
}
?>
的index.html
<form action="/AWS/uploadfile.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.