-1

我找到了一个上传代码 javascript/php 。它是用于多个文件上传但我将其更改为单个文件上传我在这部分代码中遇到了问题:

foreach($_FILES['file']['name'] as $key => $name){

        if ($_FILES['file']['error'][$key] == 0 && move_uploaded_file($_FILES['file']['tmp_name'][$key], "files/{$name}")){
            $uploaded[] = $name;
            }
}

当我尝试将其更改为此代码时,它不适用于我,我不知道问题所在

$image_name = $_FILES['file']['name'];
$bytes = $_FILES['file']['size'];
$image_temp = $_FILES['file']['tmp_name'];
$image_n = $_POST['image_n'];
$image_description = $_POST['image_description'];
$image_ext = pathinfo($image_name, PATHINFO_EXTENSION);
$album_id = 7;
$byte = formatSizeUnits($bytes);
upload_image($image_temp, $image_ext, $album_id, $image_n, $image_description, $byte);

知道可能是什么问题吗?

上传功能:

 function upload_image($image_temp, $image_ext, $album_id, $image_n, $image_description, $byte) {
    $album_id = (int)$album_id;
    $image_n = mysql_real_escape_string(htmlentities($image_n));
    $image_description = mysql_real_escape_string(htmlentities($image_description));
    //$download_link = 'uploads/'. $album_id. '/'. $image['id']. '.'. $image_ext;
    $mysql_date_now = date("Y-m-d (H:i:s)");
    $user_first = mysql_query("SELECT `first_name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']."");
    $record =mysql_fetch_array($user_first);
    $user_last = mysql_query("SELECT `last_name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']."");
    $record_two =mysql_fetch_array($user_last);
    $profile_link = mysql_query("SELECT `username` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']."");
    $record_three = mysql_fetch_array($profile_link);

    mysql_query("INSERT INTO `images` VALUES ('', '".$_SESSION['user_id']."','".$record['first_name']."".' '."".$record_two['last_name']."', '$album_id', UNIX_TIMESTAMP(), '$image_ext', '$image_n', '$image_description', '','$mysql_date_now', '$byte', '".$record_three['username']."')");


    $image_id = mysql_insert_id();
    $download_link = 'uploads/'. $album_id. '/'. $image_id. '.'. $image_ext;
    $delete_link = 'delete_image.php?image_id='. $image_id; 

    mysql_query("UPDATE `images` SET `download_link`='$download_link' WHERE `image_id`=$image_id ");
    mysql_query("UPDATE `images` SET `delete_link`='$delete_link' WHERE `image_id`=$image_id ");
    $selection = mysql_query("SELECT `user_two` FROM `follow` WHERE `user_one`='".$_SESSION['user_id']."'");

    while ($row = mysql_fetch_array($selection)) {
    mysql_query("INSERT INTO `notification` VALUES ('', '".$_SESSION['user_id']."', '".$row['user_two']."', '', UNIX_TIMESTAMP(), '$image_n', '$image_description', '$download_link')");
    }

    $image_file = $image_id.'.'.$image_ext;
    move_uploaded_file($image_temp, 'uploads/'.$album_id.'/'.$image_file);

    //Thumbnail('uploads/'.$album_id.'/', $image_file, 'uploads/thumbs/'.$album_id.'/');
}

javascript代码:

var handleUpload = function(event){

    if (lo == 21 || lo == 22 || lo == 23 || lo == 24 || lo == 31 || lo == 32 || lo == 33 || lo == 34 || lo == 35 || lo == 36 || lo == 37 || lo == 38 ||
 lo == 39 || lo == 40 || lo == 41 || lo == 42 || lo == 43 || lo == 44 || lo == 45 || lo == 46 || lo == 47 || lo == 48 || lo == 49 || lo == 50 ||
 lo == 51 || lo == 52 || lo == 53 || lo == 54 || lo == 59 || lo == 60 || lo == 61 || lo == 62 || lo == 63 || lo == 64 || lo == 65 || lo == 66 || lo == 67 ||
  lo == 68 || lo == 69 || lo == 70 || lo == 71 || lo == 72 || lo == 73 || lo == 74 || lo == 79 || lo == 80 || lo == 81 || lo == 82 || lo == 83 || lo == 84 ||
   lo == 85 || lo == 86 || lo == 87 || lo == 88 || lo == 89 || lo == 90 || lo == 91 || lo == 92 || lo == 93 || lo == 94 || lo == 99 || lo == 100 || lo == 101 ||
    lo == 102 || lo == 103 || lo == 104 || lo == 105 || lo == 106 || lo == 107 || lo == 108 || lo == 109 || lo == 110 || lo == 111 || lo == 112 || lo == 113 || lo == 114 ||
     lo == 119 || lo == 120 || lo == 121 || lo == 122 || lo == 123 || lo == 124 || lo == 125 || lo == 126 || lo == 127 || lo == 128 || lo == 129 || lo == 130 || lo == 131 ||
      lo == 132 || lo == 133 || lo == 134 || lo == 139 || lo == 140 || lo == 141 || lo == 142 || lo == 143 || lo == 144 || lo == 145 || lo == 146 || lo == 147 ||
       lo == 148 || lo == 149 || lo == 150 || lo == 151 || lo == 152 || lo == 153 || lo == 154 || lo == 159 || lo == 160 || lo == 161 || lo == 162 || lo == 163 || lo == 164 || lo == 165 ||
        lo == 166 || lo == 167 || lo == 168 || lo == 169 || lo == 170 || lo == 171 || lo == 172 || lo == 173 || lo == 174 || lo == 179 || lo == 180 || lo == 181 || lo == 182 || lo == 183 ||
         lo == 184 || lo == 185 || lo == 186 || lo == 187 || lo == 188 || lo == 189 || lo == 190 || lo == 191 || lo == 192 || lo == 193 || lo == 194 || lo == 199 || lo == 200 || lo == 201 || lo == 202 || lo == 203 ||
          lo == 204 || lo == 205 || lo == 206 || lo == 207 || lo == 208 || lo == 209 || lo == 210 || lo == 211 || lo == 212 || lo == 213 || lo == 214 || lo == 219 || lo == 220 || lo == 221 ||
           lo == 222 || lo == 223 || lo == 224 || lo == 225 || lo == 226 || lo == 227 || lo == 228 || lo == 229 || lo == 230 || lo == 231 || lo == 232 || lo == 233 || lo == 234 || lo == 239 ||
            lo == 240 || lo == 241 || lo == 242 || lo == 243 || lo == 244 || lo == 245 || lo == 246 || lo == 247 || lo == 248 || lo == 249 || lo == 250 || lo == 251 || lo == 252 || lo == 253 ||
             lo == 254 || lo == 259 || lo == 260 || lo == 261 || lo == 262 || lo == 263 || lo == 264 || lo == 265 || lo == 266 || lo == 267 || lo == 268 || lo == 269 || lo == 270 || lo == 271 || lo == 272 || lo == 273 || lo == 274 ||
              lo == 279 || lo == 280 || lo == 281 || lo == 282 || lo == 283 || lo == 284 || lo == 285 || lo == 286 || lo == 287 || lo == 288 || lo == 289 || lo == 290 || lo == 291 || lo == 292 || lo == 293 || lo == 294 ||
               lo == 299 || lo == 300 || lo == 301 || lo == 302 || lo == 303 || lo == 304 || lo == 305 || lo == 306 || lo == 307 || lo == 308 || lo == 309 || lo == 310 || lo == 311 || lo == 312 || lo == 313 ||
                lo == 314 || lo == 315 || lo == 316 || lo == 317 || lo == 318 || lo == 319 || lo == 320 || lo == 321 || lo == 322 


 ){
            alert('ok');
            }else{
            alert(location);
            }

    event.preventDefault();
    event.stopPropagation();

    var fileInput = document.getElementById('file');

    var data = new FormData();

    data.append('javascript', true);
    //isImage(fileInput.files[0].name);
    function getExtension(filename) {
    var parts = filename.split('.');
    return parts[parts.length - 1];
    }

        function isImage(filename) {
    var ext = getExtension(filename);
    var exto = ext.toLowerCase();
    switch (exto) {
    case "jpg":
    case "jpeg":
    case "png":
    case "rar":
    case "pdf":
    case "gif":
    case "ppt":
    return true;
    break;   
    }

    function toArray(arraylike) {
    var array= new Array(arraylike.length);
    for (var i= 0, n= arraylike.length; i<n; i++)
        array[i]= arraylike[i];
    return array;
    }

    //var alloptions = document.getElementsByTagName("option");
    //var done = alloptions.options[alloptions.selectedIndex].value;
    //alert(alloptions[5].value);
    //var get_value = alloptions.options[alloptions.selectedIndex].value;
    //alert(get_value);


    alert('not image!');
    return false;

}

    if(fileInput.files[0].size > 1050000) {
        //document.getElementById("image_id").innerHTML = "Image too big (max 1Mb)";
        alert('File bigger than 1Mb!');
        //window.location="upload.php";
        return false;
        }



//return false;



    for (var i = 0; i < fileInput.files.length; ++i){
        if (isImage(fileInput.files[0].name) == 1){
            if (document.getElementById("image_n").value != ""){
                if(document.getElementById("image_description").value != ""){
        data.append('file[]', fileInput.files[i]);
        }else{
        alert('Description field is empty');
        return false;
        }
        }else{
        alert('Name field is empty');
        return false;
        }
        }else{
        return false;
        }

    }   

    var request = new XMLHttpRequest();

    request.upload.addEventListener('progress', function(event){
        if(event.lengthComputable){
            var percent = event.loaded / event.total;
            var progress = document.getElementById('upload_progress');

            while (progress.hasChildNodes()){
                progress.removeChild(progress.firstChild);
            }
            progress.appendChild(document.createTextNode(Math.round(percent * 100) +' %'));
            document.getElementById("loading-progress-17").style.width= Math.round(percent * 100) +'%';
        }
    });
    // will be called after upload done successfully
    request.upload.addEventListener('load', function(event){
        document.getElementById('upload_progress').style.display = 'none';
    });
    //request.upload.addEventListener('error', function(event){
    //  alert('Upload failed');
    //});
    request.addEventListener('readystatechange', function(event){
        if (this.readyState == 4){
            if(this.status == 200){
                var links = document.getElementById('uploaded');
                var uploaded = eval(this.response);
                var div, a;
                for (var i = 0; i < uploaded.length; ++i){
                    div = document.createElement('div');
                    a = document.createElement('a');
                    a.setAttribute('href', 'files/' + uploaded[i]);
                    a.appendChild(document.createTextNode(uploaded[i]));
                    div.appendChild(a);
                    links.appendChild(div);
                }
            }else{
                console.log('server replied with HTTP status ' + this.status);
            }
        }
    });
    request.open('POST', 'upload.php');
    request.setRequestHeader('Cache-Control', 'no-cache');
    document.getElementById('upload_progress').style.display = 'block';
    request.send(data);

}

window.addEventListener('load', function(event){

    var all_select = document.getElementsByTagName("select");
    for (i = 0; i < all_select.length; i++) {
        all_select[i].onchange = function () {
            var lo = this.value;
            window.lo = lo;
            //if (location == 2 || location == 3 ){
            //alert('ok');
            //}else{
            //alert('no');
            //}

        }
    }

    var submit = document.getElementById('submit');
    submit.addEventListener('click', handleUpload);
});
4

1 回答 1

1

以下是 的格式move_uploaded_file()

$path = 'uploads/'; $fileName = 'file';
move_uploaded_file($_FILES[$fileName]['tmp_name'], $path.basename($_FILES[$fileName]['name']));

也许你需要使用basename()

于 2013-09-17T00:50:18.760 回答