Comments (4)
What version aws-sdk-php
you have installed?
Do you have the same problem if you use put
method?
I think the problem is in aws-sdk-php
.
The Aws\S3\MultipartUploader
detects and overwrites mime-type of the file by its extension.
You can see it here and here.
Do you have any suggestions for solving this problem?
from yii2-aws-s3.
- aws-sdk-php as is required by the library (nothing else currently using it).
- Using PUT the resulting content on S3 is 14bytes (corrupt data).
- Ooooo, ok. That explains a lot; our logic right now uses the PHP temp file in /tmp/* as the source file to upload as we do not want to save the file to disk before pushing it to S3. Solution may be that we will have to save it to disk, upload it, then delete one our machine. Suggestions?
from yii2-aws-s3.
There is the same problem on stackoverflow
The code is from a project that works without any problems:
$file = UploadedFile::getInstanceByName('image');
// ...
$body = file_get_contents($file->tempName);
$storage->put($filename, $body, null, [
'ContentType' => $file->type,
]);
from yii2-aws-s3.
Hazzah! That helped out greatly! Final solution:
if (!($this->file instanceof \yii\web\UploadedFile)) { return false; }
$filename = \Yii::$app->S3->path(\Yii::$app) . \Ramsey\Uuid\Uuid::uuid4()->toString() . '.' . explode('/', $this->file->type)[1];
\Yii::$app->get('s3bucket')->put(
$filename,
file_get_contents($this->file->tempName),
\Yii::$app->get('s3bucket')->defaultAcl,
[
'ContentType' => $this->file->type,
]
);
return ($filename ?: false);
from yii2-aws-s3.
Related Issues (20)
- PHP Parse Error – yii\base\ErrorException syntax error, unexpected '?' HOT 5
- Unknown Property – yii\base\UnknownPropertyException Setting unknown property: frostealth\yii2\aws\s3\Service::options HOT 5
- The image downloads without displaying in browser
- Compatibility with php 7.2 HOT 1
- CDN Support HOT 1
- Allowed memory size of xxxx bytes exhausted
- Activating StreamWrapper HOT 1
- unlink() function is not working after upload to s3
- Add the option to set the S3Client Endpoint property HOT 4
- composer error HOT 1
- How to upload large files
- Class 'frostealth\yii2\aws\s3\Service' not found
- Can I use ClientSide encryption with this extension?
- upload file to a specific folder
- Breaking changes in Guzzle dependency
- Call to undefined function GuzzleHttp\Psr7\try_fopen() HOT 3
- Bulk delete files in folder or delete entire folder with files.
- Not able to upgrade frostealth library from 0.2.0 to 2.0.0 HOT 1
- Credentials must be an instance of Aws\Credentials\CredentialsInterface HOT 1
- How to move a file to another directory
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yii2-aws-s3.