IPB

Bienvenue invité ( Connexion | Inscription )

> uploader une image/un PDF avec une webapp et iOS en 2019 ?
Options
toluol
posté 15 May 2019, 07:51
Message #1


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 792
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



Bonjour,

j'ai fait quelques recherches sur google et sur le forum, mais je n'ai rien trouvé à part pour des applications natives.
Est-il possible, avec des moyens "simples" (pour moi, html5, php, jquery et autres bibliothèques javascript, mysql) de développer une petite webapp afin d'uploader une image de la bibliothèque de son iphone ou de son ipad ?

Mon but étant de faire un petit programme pour ma comptabilité personnelle (ou d'acheter un bout de code, de trouver un programmeur pour le faire, ou de trouver une petite app qui me permet de) :
- prendre une photo d'un ticket, d'une facture
- ajouter une date (par défaut celle d'aujourd'hui), un libellé, un montant dans une fenêtre pop-up (pour enregistrer le nom de l'image)
- uploader l'image du ticket sur un serveur (si possible dans un dossier spécifique)
- l'inscrire dans une base de donnée (optionnelle, mais très souhaitable pour calculer différents postes de compta, générer une liste, et retrouver le PDF/la photo du ticket si besoin)

Merci d'avance pour vos réponses/propositions/idées.

Ce message a été modifié par toluol - 15 May 2019, 07:56.
Go to the top of the page
 
+Quote Post
 
Start new topic
Réponse(s)
toluol
posté 14 Nov 2019, 22:42
Message #2


Macbidouilleur d'argent !
***

Groupe : Membres
Messages : 792
Inscrit : 14 Nov 2003
Lieu : Genève
Membre no 11 656



Je déterre mon propre post...

J'ai trouvé une solution qui fonctionne en HTML 5 avec : <input type="file" accept="image/*;capture=camera" capture="camera">

Le seul souci, c'est que cela marche en "deux temps". D'abord, un bouton pour capturer l'image... Ensuite, un bouton pour uploader sur le serveur... Si cela pouvait être direct, ce serait parfait ! J'ai essayé de simuler un click sur le 2e bouton en Ajax dans la fonction completeHandler, mais cela n'a donné aucun résultat. Avez-vous une idée ?

Voici mes 2 fichiers fonctionnels pour le moment :

index.html
*********
Code
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        input{border:none;display:inline-block;width:100%;padding: 12px 0;cursor: pointer;font:1em arial, sans-serif;color:#fff;-webkit-border-radius: 5px;
            -moz-border-radius: 5px;border-radius: 5px;background: linear-gradient(to bottom, #4eb5e5 0%,#389ed5 100%);text-decoration: none;}
    </style>
    <script>
        function _(el){return document.getElementById(el);}
        _("file1").addEventListener('change', uploadCameraFile, false);
        function uploadCameraFile(){
            var file = _("file1").files[0];
            var formdata = new FormData();
            formdata.append("file1", file);
            var ajax = new XMLHttpRequest();
            ajax.addEventListener("load", completeHandler, false);
            ajax.addEventListener("error", errorHandler, false);
            ajax.addEventListener("abort", abortHandler, false);
            ajax.open("POST", "upload.php");
            ajax.send(formdata);
        }
        function completeHandler(event){_("status").innerHTML = event.target.responseText;}
        function errorHandler(event){_("status").innerHTML = "Erreur d'Upload";}
        function abortHandler(event){_("status").innerHTML = "Upload annulé";}
    </script>
</head>
<body>
<h2>Test d'upload camera</h2>
<form id="upload_form" enctype="multipart/form-data" method="post">
  <input type="file" name="file1" id="file1" accept="image/*;capture=camera" capture="camera">
  <br><br>
  <label class="styleInputButton"><input type="button" value="Upload image" onclick="uploadCameraFile()" class="formButton"></label>
  <h3 id="status"></h3>
</form>
</body>
</html>


upload.php
*********
Code
<?php
$fileName = $_FILES["file1"]["name"]; // The file name
$fileTmpLoc = $_FILES["file1"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["file1"]["type"]; // The type of file it is
$fileSize = $_FILES["file1"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["file1"]["error"]; // 0 for false... and 1 for true
if (!$fileTmpLoc) {
    echo "capturez une image avant de l'uploader.";
    exit();
}
if(move_uploaded_file($fileTmpLoc, "uploads/$fileName")){
    echo "Votre image a bien été uploadée.<br/><br/><img src='uploads/$fileName' />";
} else {
    echo "Une erreur s'est produite.";
}
?>

il faut bien entendu un dossier "uploads".
Go to the top of the page
 
+Quote Post

Les messages de ce sujet


Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 18th July 2025 - 05:07