diff --git a/src/components/EditProfile.vue b/src/components/EditProfile.vue
index 8725cfe22726c81985687fb8185ed436f4f12b77..b78d7f5ae2bc8e5e81de27f889237669b8986fe1 100644
--- a/src/components/EditProfile.vue
+++ b/src/components/EditProfile.vue
@@ -1,14 +1,10 @@
 <template>
         <h2>Profilinnstillinger</h2>
-
-
-        <div v-if="hasProfileImage" id = "profilepicture-container">
-            <img  width="100" :src="this.updatedProfile.upImage" alt="profile picture">
-        </div>
-        <div v-else id="#placeholder">
-            <Icon   icon="material-symbols:person" :color=iconColor :style="{ fontSize: '500px'}" />
+        <div id = "profilepicture-container">
+            <img  width="100" :src="image" alt="profile picture">
         </div>
 
+
         <h3>{{this.profile.name}}</h3>
         <button  @click="changeProfile" id="changeUserBtn" class="redBtn">Bytt bruker</button>
 
@@ -26,16 +22,14 @@
 
             <h3>Profilbilde</h3><br>
             <div id="changeUserImage">
-                <div v-if="hasProfileImage" id = "profilepicture-container">
-                    <img width="50" :src="this.updatedProfile.upImage" alt="profile picture">
+
+                <div id = "profilepicture-container">
+                    <img width="50" :src="image" id = "profile_img_preview" alt="profile picture">
                 </div>
-                <div v-else id = "profilepicture-container">
-                    <Icon icon="material-symbols:person" :color=iconColor :style="{ fontSize: '30px'}" />
+                <div>
+                    <input @change="updateImg" type="file" accept=".jpeg, .jpg" id="profile_img" name="profile_img"><br><br>
                 </div>
 
-                <label for="chooseImageUrl">Bilde-URL:</label><br>
-                <!--<input type="file" id="chooseImage" v-on:change="updateImage">-->
-                <input type="text" id="chooseImageUrl" v-model="this.updatedProfile.upImage">
 
             </div>
         <br><br>
@@ -64,6 +58,7 @@ export default {
             alertMsg:'',
             initialName: '', //used to compare with updated values
             initialRestriction: '',
+            image: "profile/default_avatar.png",
         }
     },
     computed: {
@@ -73,24 +68,32 @@ export default {
           return {
               upName: this.profile.name,
               upRestricted: this.profile.restricted,
-              upImage: this.profile.profileImageUrl,
+              upImage: "profile/default_avatar.png",
           }
         },
         iconColor() {
             return "#D9D9D9"
         },
-        hasProfileImage() {
-            return false;
-        }
     },
     beforeMount() {//used to compare with changed values
         this.initialName = this.profile.name;
         this.initialRestriction = this.profile.restricted;
+        if(this.profile.profileImageUrl !== ''){
+            this.image = this.profile.profileImageUrl;
+        }
     },
     methods: {
         changeProfile(){
             router.push("/selectProfile");
         },
+        updateImg() {
+            let file = document.getElementById("profile_img").files[0];
+            let reader = new FileReader();
+            reader.onload = function (ev) {
+                document.getElementById("profile_img_preview").src = ev.target.result;
+            };
+            reader.readAsDataURL(file);
+        },
         async deleteProfile() {
                 const id = this.profile.id;
                 API.deleteProfile(id).then(() => {
@@ -115,11 +118,27 @@ export default {
             API.updateProfile(
                 id,{
                     name:newName,
-                    profileImageUrl:this.updatedProfile.upImage,
+                    profileImageUrl:null,
                     isRestricted: newRestricted,
                 }
             ).then((savedProfile)=>{
                 useAuthStore().setProfile(savedProfile);
+                const id = this.profile.id;
+                let image = document.getElementById("profile_img").files[0];
+
+                if (typeof image !== 'undefined') {
+                    API.uploadProfileImage(image, id)
+                        .then((updatedProfile) => {
+                            useAuthStore().setProfile(updatedProfile);
+                        }).catch(()=> {
+                        this.alertMsg = "Bilde kunne ikke bli oppdatert (bildekrav: JPEG mindre enn 512kB)"
+                    });
+                }
+                else {
+                    useAuthStore().setProfile(savedProfile);
+                    this.alertMsg = "Profil oppdatert."
+                    return;
+                }
                 this.alertMsg = "Profil oppdatert."
             }).catch(error=> {
                 console.log(error)
diff --git a/src/components/FridgeItem.vue b/src/components/FridgeItem.vue
index a23603f03c0e965368cda1ebea78fdf8865bb36f..c4aa60782bc0d64b10820ff7fba8c20555e4a8f2 100644
--- a/src/components/FridgeItem.vue
+++ b/src/components/FridgeItem.vue
@@ -96,8 +96,8 @@ export default {
         formatDate(){ //formats expiration date as dd.mm.yyyy
             let fullExpirationDate = new Date(this.fridgeItem.exp_date);
             let day = fullExpirationDate.getDate();
-            let month= (fullExpirationDate.getMonth()+1).toString();
-            let year= fullExpirationDate.getFullYear().toString();
+            let month= (fullExpirationDate.getMonth()+1).toString().padStart(2,'0');
+            let year= fullExpirationDate.getFullYear().toString().padStart(2,'0');
             return day + "." + month + "." + year;
         }