[PHP] Foto maken ipv bestaand bestand uploaden

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Cornelisjuh
  • Registratie: Maart 2010
  • Laatst online: 16-04-2020
Ik ben bezig met een uploadformulier waar bestanden geüpload moeten worden.
Het is ook de bedoeling dat je bij het aanklikken van het uploadveld op een mobile device ook direct een foto kan nemen en deze uploadt, in plaats van een bestaande foto selecteren (dat laatste gaat wel goed).

Het is ook alleen bij Android. Ik gebruik een Galaxy S6 (6.0.1) met de standaard Android browser. Op Google Chrome (zelfde telefoon) werkt het wel, evenals iOS.

Is er een speciale manier waarop de standaard Android Browser uploads behandeld?

Alvast bedankt, ondanks mijn Google Fu skills kon ik niets vinden ;(

i7 4970K | Mugen 4 | GTX 980Ti SC+ ACX2.0+ | 16GB 1600 Corsair Dominator | Asus Maximus VII Ranger | Corsair 730T | Corsair RM750 ||| Corsair Strafe RGB | Asus MG278Q

Beste antwoord (via Cornelisjuh op 09-03-2016 16:19)


  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 16:15
Je snapt toch dat dat helemaal zijn vraag niet was/is?

code:
1
 <input type="file" accept="image/*" capture="camera">

zou volgens sommige sites ook moeten werken.
http://www.html5rocks.com/en/tutorials/getusermedia/intro/

PS als je een site hebt waar het al bij werkt.. kijk dan eens naar de source code daarvan ? ;)

[ Voor 12% gewijzigd door Icekiller2k6 op 09-03-2016 16:18 ]

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000

Alle reacties


Acties:
  • 0 Henk 'm!

  • Umbrah
  • Registratie: Mei 2006
  • Laatst online: 08:24

Umbrah

The Incredible MapMan

Wat voor code gebruik je nu? "browse file" wordt door het OS afgehandeld, en veel 'dommere' devices hebben maar één API die die intent snapt, dat is "browse photo's", Windows Mobile 10 zou gewoon de mobile file explorer starten, etc, etc...

Staat hier niet een oplossing voor je?: http://www.htmlgoodies.co...pps.html#fbid=HiuGF4bDBlv

Acties:
  • 0 Henk 'm!

  • Cornelisjuh
  • Registratie: Maart 2010
  • Laatst online: 16-04-2020
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$aantal_bestanden = count($FILE_ARRAY["file"]["name"]);
            for ($i = 0; $i < $aantal_bestanden; $i++) {
                    $upload_ok = true;
            
                    $filename = $FILE_ARRAY["file"]["name"][$i];
                    $file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention
                    $file_ext = substr($filename, strripos($filename, '.')); // get file name
                    
                    $finfo = new finfo(FILEINFO_MIME_TYPE);
                    $fileContents = file_get_contents($FILE_ARRAY['file']['tmp_name'][$i]);
                    $mimeType = $finfo->buffer($fileContents);
                    
                    $filesize = $FILE_ARRAY["file"]["size"][$i];
                    $allowed_file_types = array('.doc','.docx','.rtf','.pdf','.png','.jpg','.jpeg','.bmp','.gif','.txt');   
                    
                    $upload_path = "upload/pad/naar/bestand";
                    
                    // Check for double dots
                    
                    if(substr_count($filename, '.') != 1){
                        $upload_ok = false; 
                    }       
                    
                    if (in_array($file_ext,$allowed_file_types) && ($filesize < 5000000) && $upload_ok == true && !empty($file_basename))
                    {   
                        // Rename file
                        $newfilename = md5($file_basename) . $file_ext;
                        if (file_exists($upload_path . $newfilename))
                        {
                            $newfilename = bin2hex(openssl_random_pseudo_bytes(8)).$newfilename;
                            move_uploaded_file($FILE_ARRAY["file"]["tmp_name"][$i], $upload_path . $newfilename);
                            $return = "Bestand succesvol geupload!";        
                        }
                        else
                        {   
                            move_uploaded_file($FILE_ARRAY["file"]["tmp_name"][$i], $upload_path . $newfilename);
                            $return = "Bestand succesvol geupload!";        
                        }
                        
                    }
                    elseif (empty($file_basename))
                    {   
                        // file selection error
                        $return = "Kies een bestand om te uploaden";
                    } 
                    elseif ($filesize > 5000000)
                    {   
                        // file size error
                        $return = "Het bestand is te groot om te uploaden";
                    }
                    else
                    {
                        // file type error
                    }   
                }

i7 4970K | Mugen 4 | GTX 980Ti SC+ ACX2.0+ | 16GB 1600 Corsair Dominator | Asus Maximus VII Ranger | Corsair 730T | Corsair RM750 ||| Corsair Strafe RGB | Asus MG278Q


Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Icekiller2k6
  • Registratie: Februari 2005
  • Laatst online: 16:15
Je snapt toch dat dat helemaal zijn vraag niet was/is?

code:
1
 <input type="file" accept="image/*" capture="camera">

zou volgens sommige sites ook moeten werken.
http://www.html5rocks.com/en/tutorials/getusermedia/intro/

PS als je een site hebt waar het al bij werkt.. kijk dan eens naar de source code daarvan ? ;)

[ Voor 12% gewijzigd door Icekiller2k6 op 09-03-2016 16:18 ]

MT Venus E 5KW (V151) P1 HomeWizard | Hackerspace Brixel te Hasselt (BE) - http://www.brixel.be | 9800X3D, 96GB DDR5 6000MHZ, NVIDIA GEFORCE 4090, ASRock X670E Steel Legend, Seasonic GX1000