Comments (5)
please provide some sample code. Looks like we may need to use PUT instead of POST for documents with attachments.
from lithium.
Hi gwoo,
I am working on the Photoblog tutorial in combination with the CouchDB.
The simple examples provided by the CouchDB explains how to insert a file into a existing document. This worked well in our case:
curl -vX PUT http://CouchDB:5984/photoblog/[-ID-OF-DOCUMENT] /Nikki2.jpg?rev=[-CURRENT-REVISION-] --data-binary @/Niki-de-Saint-Phalle3.jpg -H "Content-type:image/jpg"
The new _attachment entry in the document had the same atributes as provided by the Lithium Framework (size, type ...). Only the _attachment is missing when using Lithium.
As you mentioned we tried to use the PUT method, but this didn't help in the simple matter we tried it as seen in the example code below. Nevertheless the entry got still created in CouchDB but still without the picture.
Extraced from the photoblog tutorial /app/views/edit.html.php with some modifications. We are using the current release (yesterday) of lithium.
form->create($photo, array('type' => 'file', 'method' => 'put')); ?> form->field('title'); ?> form->field('description'); ?> exists()) { ?> <?=$this->form->field('file', array('type' => 'file', 'method' => 'put')); ?>
Best regards, Nils
from lithium.
Probably refs Ticket 391 on dev.lithify.me "PUT request 'form' data is lost".
from lithium.
We'll need to build an abstraction for handling binary data (MongoDB's gridfs object, CouchDB inline and ref'ed attachments). Otherwise we'll end up duplicating code i.e. MIME-type checking etc. This is a medium large task.
from lithium.
Building such an above mentioned abstraction turned out to be a too ambitious task. As we're not going to support GridFS in MongoDB in the future (see #1305 (comment) for an explanation, same reasons apply here) it makes sense to not support it for CouchDB.
from lithium.
Related Issues (20)
- Provide common HTTP errors as exceptions
- Cache problem? HOT 2
- Fatal error: Cannot use 'Object' as class name as it is reserved in D:\xampp\htdocs\li3app\libraries\lithium\core\Object.php on line 37 HOT 1
- How to set the "base" of the environment/request
- couchdb 2.3 is not working with lithium HOT 1
- li3 2.0 trait not found HOT 2
- Remove {Static,}Object for Shallow Class Hierachy HOT 1
- PHP 7.3 compact() E_NOTICE HOT 3
- Cant find instructions on how to install the program HOT 1
- Question: Support PHP 7.4 HOT 2
- Unable to use JSON query operands in fields list
- Framework status? HOT 1
- Maintainer/s wanted HOT 1
- Framework upgrade for latest PHP HOT 4
- add devcontainer configuration
- implement CI with GitHub Actions
- li3 upgrade to php 8 HOT 7
- BUG: Model::find() returns false instead of empty RecordSet HOT 3
- 'with' count 1, not 0
- AND Post.id IN () HOT 1
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 lithium.