繁体   English   中英

通过PHP将文件从网站上传到Amazon EC2服务器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM