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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 R语言卸载之后无法重装,显示电脑存在下载某些较大二进制文件行为,怎么办
  • ¥15 java 的protected权限 ,问题在注释里