Skip to content

Commit d571a37

Browse files
committed
POST file upload to flask server
1 parent d7601d1 commit d571a37

File tree

3 files changed

+41
-15
lines changed

3 files changed

+41
-15
lines changed

backend/app.py

+14-4
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
1-
from flask import Flask
1+
from flask import Flask, request
22

33
app = Flask(__name__)
44

55

6-
@app.route('/')
7-
def hello():
8-
return "Hello World!"
6+
@app.route('/', methods=['POST'])
7+
def upload_file():
8+
print(f'request method: {request.method}')
9+
print(f'request object: {request}')
10+
print(f'request files: {request.files}')
11+
print(f'request form: {request.form}')
12+
13+
if 'file' in request.files:
14+
file = request.files['file']
15+
print(f'request files: {file}')
16+
else:
17+
print(f'No file')
18+
return "File upload complete!"
919

1020
if __name__ == '__main__':
1121
app.run(host='127.0.0.1', port=5000)

index.html

+6-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@
3939
<br><br>
4040
<label for="user-background">Your Background</label>
4141
<textarea id="user-background" rows="5" cols="50"></textarea>
42-
Upload Resume (pdf only): <input type="file" id="upload-resume" accept=".pdf">
42+
Upload Resume:
43+
<!-- <input type="file" id="upload-resume"/> -->
44+
<form id="upload-resume-form" action="" enctype="multipart/form-data" method="post">
45+
<input type="file" name="file" id="upload-resume"/>
46+
<button>Upload</button>
47+
</form>
4348
<br><br>
4449
<label for="job-position">Job Position</label>
4550
<input type="text" id="job-position">

renderer.js

+21-10
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ var currentWriting = null;
66
var coverLetterButton = null;
77
var whyUsButton = null;
88
var uploadResumeButton = null;
9+
var uploadResumeForm = null;
910
var generateButton = null;
1011
var goBackButton = null;
1112

@@ -35,8 +36,11 @@ apiSubmitButton.addEventListener("click", async event => {
3536
// Default
3637
selectCoverLetterBtn();
3738

38-
uploadResumeButton = waitUntilLoad('upload-resume');
39-
uploadResumeButton.addEventListener('change', uploadResume);
39+
// Upload resume submit
40+
// uploadResumeButton = waitUntilLoad('upload-resume');
41+
// uploadResumeButton.addEventListener('change', uploadResume);
42+
uploadResumeForm = waitUntilLoad('upload-resume-form');
43+
uploadResumeForm.addEventListener('submit', uploadResume);
4044

4145
// Generate button click
4246
generateButton = waitUntilLoad('generate-btn');
@@ -59,17 +63,24 @@ function selectWhyUsBtn() {
5963
currentWriting = 'why-us';
6064
}
6165

62-
async function uploadResume() {
63-
// const file = this.files[0];
64-
// let text = await file.text();
65-
// console.log(text);
66+
async function uploadResume(event) {
67+
event.preventDefault();
6668

67-
// TODO: cannot make connection with the backend.
68-
// Try https://github.com/megasanjay/electron-flask
69-
axios.get(`${SERVER_URL}/`)
69+
// console.log(this.file);
70+
// let resumeInput = document.getElementById('upload-resume');
71+
// console.log(x.files);
72+
73+
let formData = new FormData();
74+
formData.append("file", this.file.files[0]);
75+
console.log(formData);
76+
77+
axios.post(`${SERVER_URL}/`, formData, {
78+
headers: {
79+
"Content-Type": "multipart/form-data"
80+
}
81+
})
7082
.then((response) => {
7183
console.log(response.data);
72-
console.log('server connected');
7384
})
7485
.catch((error) => {
7586
console.error(error);

0 commit comments

Comments
 (0)