【问题标题】:Upload file to Amazon EC2 server from website by PHP通过 PHP 将文件从网站上传到 Amazon EC2 服务器
【发布时间】:2018-12-18 11:39:47
【问题描述】:

我有一个网站 (bedatify.com),我想创建一个页面,人们可以在其中将他们的图像上传到我的亚马逊 EC2 服务器。 我检查了类似的问题,例如 Unable to upload files on Amazon EC2 - phphow to upload to files to 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";
    }
}

?>

【问题讨论】:

  • FTP 怎么样?

标签: php amazon-web-services server


【解决方案1】:

只是一个提示: 这是 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";
}

希望对你有帮助!

多米尼克

【讨论】:

    【解决方案2】:

    上传文件.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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-18
      • 2016-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多