diff --git a/src/molecules/Files.js b/src/molecules/Files.js
index c2590eb7faf7b527ccff2c822538f8e244fd6b9e..5e653183bc4944e0a6437966466217b8d8d28a8b 100644
--- a/src/molecules/Files.js
+++ b/src/molecules/Files.js
@@ -18,19 +18,29 @@ class Files extends React.Component {
   }
 
   handleChange = event => {
-    const { uploadFile } = this.props
     const { uploads } = this.state
 
     Array.from(event.target.files).forEach(file => {
       uploads.push({
         file,
-        request: uploadFile(file)
+        request: this.props.uploadFile(file)
       })
     })
 
     this.setState({ uploads })
   }
 
+  handleUploadedFile = ({ file, url }) => {
+    const values = this.state.values.concat({
+      name: file.name,
+      url
+    })
+
+    this.setState({ values })
+
+    this.props.handleChange(values)
+  }
+
   render () {
     const { name } = this.props
     const { values, uploads } = this.state
@@ -59,7 +69,8 @@ class Files extends React.Component {
             <Upload
               key={upload.file.name}
               file={upload.file}
-              request={upload.request}/>
+              request={upload.request}
+              handleUploadedFile={this.handleUploadedFile}/>
           ))}
 
           {values && values.map(value => (
diff --git a/src/molecules/Upload.js b/src/molecules/Upload.js
index a5c0d08ecdbdcbe8d1ae656ce4349385f115fd87..d7fcc0052f5a1c5bbd74c07aec32afede4ae2353 100644
--- a/src/molecules/Upload.js
+++ b/src/molecules/Upload.js
@@ -31,6 +31,11 @@ class Upload extends React.Component {
       this.setState({
         progress: 1
       })
+
+      this.props.handleUploadedFile({
+        file: this.props.file,
+        url: this.props.request.responseText
+      })
     } else {
       this.setState({
         error: 'There was an error'