dtot74529 2013-02-20 19:57
浏览 37
已采纳

将单张照片上传转换为多张照片上传(支持iPhone)

I followed a tutorial that helped me make a really basic form to allow a user to upload an image to my server (and from their mobile phone).

I'd like to allow multiple file upload, but I'm not sure how to convert my PHP scripting.

How can I convert the working code below for single photo upload into multiple photo upload?

Here are the relevant portions of my code:

index.php:

<form action="upload.processor.php" enctype="multipart/form-data" id="upload" method="post" name="Upload">
   <input id="file" name="file" type="file" accept="image/*" capture="camera" />
   <input id="submit" name="submit" type="submit" value="Upload!">
</form>

upload.processor.php:

<?php 

    // make a note of the current working directory, relative to root. 
    $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']); 

    // make a note of the directory that will receive the uploaded file 
    $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'img/'; 

    // make a note of the location of the upload form in case we need it 
    $uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'index.php'; 

    // make a note of the location of the success page 
    $uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.success.php'; 

    // fieldname used within the file <input> of the HTML form 
    $fieldname = 'file'; 

    // possible PHP upload errors 
    $errors = array(1 => 'php.ini: Max file size exceeded.', 
                    2 => 'HTML form: Max file size exceeded.', 
                    3 => 'File upload was only partial.', 
                    4 => 'No file was attached.'); 

    // check the upload form was actually submitted else print the form 
    isset($_POST['submit']) 
        or error('The upload form is required.', $uploadForm); 

    // check for PHP's built-in uploading errors 
    ($_FILES[$fieldname]['error'] == 0) 
        or error($errors[$_FILES[$fieldname]['error']], $uploadForm); 

    // check that the file we are working on really was the subject of an HTTP upload 
    @is_uploaded_file($_FILES[$fieldname]['tmp_name']) 
        or error('Not an HTTP upload.', $uploadForm); 

    // validation to make sure the uploaded file is in fact an image. 
    @getimagesize($_FILES[$fieldname]['tmp_name']) 
        or error('Only image uploads are allowed!', $uploadForm); 

    // make a unique filename for the uploaded file and check it is not already 
    // taken... if it is already taken keep trying until we find a vacant one 
    // sample filename: 1140732936-filename.jpg 
    $now = time(); 
    while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name'])) { 
        $now++; 
    } 

    // move the file to its final location and allocate the new filename to it 
    @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename) 
        or error('Receiving directory has incorrect permissions.', $uploadForm); 

?> 
  • 写回答

1条回答 默认 最新

  • dongxi8297 2013-02-20 20:00
    关注

    You are going to iterate over $_FILES[$fieldname] to get the array of files based on your form. So iterate over the array and then process the file.

    so:

    foreach($_FILES[$fieldname] => $singleFile) {
       // check for PHP's built-in uploading errors 
        ($singleFile['error'] == 0) 
            or error($errors[$singleFile['error']], $uploadForm); 
    
        // check that the file we are working on really was the subject of an HTTP upload 
        @is_uploaded_file($singleFile['tmp_name']) 
            or error('Not an HTTP upload.', $uploadForm); 
    
        // validation to make sure the uploaded file is in fact an image. 
        @getimagesize($singleFile['tmp_name']) 
            or error('Only image uploads are allowed!', $uploadForm); 
    
        // make a unique filename for the uploaded file and check it is not already 
        // taken... if it is already taken keep trying until we find a vacant one 
        // sample filename: 1140732936-filename.jpg 
        $now = time(); 
        while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$singleFile['name'])) { 
            $now++; 
        } 
    
        // move the file to its final location and allocate the new filename to it 
        @move_uploaded_file($singleFile['tmp_name'], $uploadFilename) 
            or error('Receiving directory has incorrect permissions.', $uploadForm);
    
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算