Skip to content

Commit cd6574e

Browse files
author
daniel.gomez
committed
#2 Added preset and a dummy upload services example
1 parent 11e5ca2 commit cd6574e

File tree

6 files changed

+69
-1
lines changed

6 files changed

+69
-1
lines changed

demo/Server.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,30 @@ import webpackMiddleware from 'webpack-dev-middleware';
88
import webpackHotMiddleware from 'webpack-hot-middleware';
99
import webpack from 'webpack';
1010

11+
import multer from 'multer';
12+
13+
const storage = multer.diskStorage({
14+
destination: function(request, file, callback) {
15+
callback(null, "./demo/uploads");
16+
},
17+
filename: function(request, file, callback) {
18+
callback(null, file.originalname + '-' + Date.now())
19+
}
20+
});
21+
22+
const upload = multer({storage});
23+
24+
1125
const webpackCompiler = webpack(webpackConfig);
1226

1327
require.extensions['.html'] = function (module, filename) {
1428
module.exports = fs.readFileSync(filename, 'utf8');
1529
};
1630

1731
const development = process.env.NODE_ENV !== 'production';
32+
1833
let app = express();
34+
1935
let router = new Router();
2036

2137
router.get("/api/languages", (request, response) => {
@@ -37,6 +53,18 @@ router.get("/api/languages", (request, response) => {
3753
response.status(200).json(arr);
3854
});
3955

56+
router.post("/upload", upload.array("fileData"), (request, response) => {
57+
let files = request.files;
58+
59+
60+
files.forEach(file => {
61+
console.log(JSON.stringify(file));
62+
});
63+
64+
response.end();
65+
66+
});
67+
4068
app.use(router);
4169

4270
if (development) {

demo/presets.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,5 +124,15 @@ export default [
124124
layoutName: 'edit',
125125
formTitle: 'Edit contact',
126126
schema: require('./presets/componentsFieldGroup.txt')
127+
},
128+
{
129+
name: 'componentsFileUpload',
130+
displayName: 'Components - FileUpload (Experimental)',
131+
entityName: 'contact',
132+
layoutName: 'edit',
133+
formTitle: 'Edit contact',
134+
schema: require('./presets/componentsFileUpload.txt')
127135
}
136+
137+
128138
]
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
entities: [
3+
{
4+
name: "contact",
5+
fields: [
6+
{
7+
name: "fileUploader",
8+
type: "string",
9+
10+
}
11+
],
12+
layouts: [
13+
{
14+
name: "edit",
15+
fields: [
16+
{
17+
name: "fileUploader",
18+
displayName: "File Upload",
19+
component: "FileUpload",
20+
url: "/upload"
21+
22+
}
23+
]
24+
}
25+
]
26+
}
27+
]
28+
}

demo/uploads/.placeholder

Whitespace-only changes.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,12 @@
2929
"homepage": "https://github.com/redux-autoform/redux-autoform-bootstrap-ui#readme",
3030
"dependencies": {
3131
"attr-accept": "^1.0.3",
32+
"body-parser": "^1.15.2",
3233
"bootstrap": "^3.3.6",
3334
"filesize": "^3.3.0",
3435
"font-awesome": "^4.6.3",
3536
"isomorphic-fetch": "^2.2.1",
37+
"multer": "^1.2.0",
3638
"react": "^15.1.0",
3739
"react-bootstrap": "^0.30.0",
3840
"react-dom": "^15.2.1",

src/components/field/FileUpload.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ export default class FileUpload extends Component {
3131
let fileData = new FormData();
3232

3333
files.forEach((file) => {
34-
fileData.append(file.name, file);
34+
fileData.append("fileData", file);
3535
});
3636

3737
fetch(url, {

0 commit comments

Comments
 (0)