【问题标题】:error in upload form上传表单错误
【发布时间】:2013-01-09 21:52:47
【问题描述】:

你好我复制了1个带上传进度条的上传文件源代码
如果我删除 foreach 并制作 1 个文件进行上传,它的工作原理
但我想在我的表单中有 5 个文件字段
这是我现在的代码:

$upload_directory = "$fUllp/";
//5M
$allowsize = 5242880;
foreach($_FILES as $file) {
$n = $file['name'];
$s = $file['size'];
$t = $file['type'];
$tmp = $file['tmp_name'];
if (is_array($n)) {
  $c = count($n);
  for ($i=0; $i < $c; $i++) {
    if($s <= $allowsize){
    $filename = explode('.',$n);
    $filetype = $filename[1];

    if(!isset($filename[2])){
        $glast = mysql_query("select id from up_guest order by id desc limit 1");
        $flast = mysql_fetch_array($glast);
        if($flast['id'] == '' or $flast['id'] <= 0){
            $flast = 1;
        }
        else{
            $flast = $flast['id'] + 1;
        }
        $time = time();
        $filename = $flast.'.'.$filename[1];

        if(in_array($t,$allow)){

            if (move_uploaded_file($tmp, $upload_directory . $filename)) {
                //insert db
                //img full
                $fullurl = $siteurl.'/'.$upload_directory.$filename;
                //for sql
                $fullurlsq = '/'.$upload_directory.$filename;
                $fullurlsqt = '/'.$upload_directory.'t/'.$filename;
                //img resize
                $image = new SimpleImage();
                $image->load($upload_directory.'/'.$filename);
                $image->resizeToHeight(100);
                $image->resizeToWidth(100);
                $image->save($upload_directory.'/t/'.$filename);
                //img koochik
                $imgt = $upload_directory.'/t/'.$filename;
                mysql_query("insert into up_guest(name,name_t,type,time,ip) values('$fullurlsq','$fullurlsqt','$filetype',$time,'$ip')");
                print '<br><div class="system-message"><ul class="index_info"><li>توضیح: <span>فایل با موفقیت آپلود شد<bR /><div class="thumb_img">';
                print "<a href=\"$fullurl\" onclick=\"window.open(this.href,\"_blank\");return false;\"><img src=\"$imgt\"></a></div>";
                //tbl1
                print '<table border="0" width="100%" cellspacing="0" cellpadding="0" class="up_box_input"><tbody><tr><td class="btitle">لینک تصویر کوچک</td><td class="all_box_link"><textarea readonly="readonly" rows="2" cols="40" class="up_input" tabindex="1" onclick="this.select();">';
                print "[url=$siteurl/][img]$imgt [/img][/url]</textarea></td></tr></tbody></table>";
                //tbl2
                print 'echo file detaid for user';

            }//file upload she
            else{
                echo '<div class="site_error_msg">cant up</div>';
            }
        }//age allow bood un file
        else{
            echo '<div class="site_error_msg">extention not allowed</div>';
        }
    }//if noghte vasatesh nabood
    else{
        echo '<div class="site_error_msg">you not must have . in file name</div>';
    }
}//if sizesh mojaz bood
else{
    echo '<div class="site_error_msg">uploaded file is more than 5 MB</div>';
}//end my code

但是 在第一个 IF 中运行 else
我的意思是

if(in_array($t,$allow)){

然后运行它

else{
    echo '<div class="site_error_msg">uploaded file is more than 5 MB</div>';
}//end my code

所以它一定有问题 这些行及其设置的文件名大小不正确

foreach($_FILES as $file) {
$n = $file['name'];
$s = $file['size'];
$t = $file['type'];
$tmp = $file['tmp_name'];
if (is_array($n)) {
  $c = count($n);
  for ($i=0; $i < $c; $i++) {

【问题讨论】:

  • 您是否首先在 SO 上检查过类似的问题?

标签: php forms file-upload upload


【解决方案1】:

好的,找到我的 nooblish 问题!我必须在 For like this 下输入我的文件大小和名称

foreach($_FILES as $file) {
$n = $file['name'];
$s = $file['size'];
$t = $file['type'];
$tmp = $file['tmp_name'];
if (is_array($n)) {
  $c = count($n);
  for ($i=0; $i < $c; $i++) {
      $ss = $s[$i];
      $tmpp = $tmp[$i];
      $nn = $n[$i];
      $tt = $t[$i];
    if($ss <= $allowsize){
    $filename = explode('.',$nn);
    $filetype = $filename[1];

    if(!isset($filename[2])){
        $glast = mysql_query("select id from up_guest order by id desc limit 1");
        $flast = mysql_fetch_array($glast);
        if($flast['id'] == '' or $flast['id'] <= 0){
            $flast = 1;
        }
        else{
            $flast = $flast['id'] + 1;
        }
        $time = time();
        $filename = $flast.'.'.$filename[1];

        if(in_array($tt,$allow)){

谢谢大家:D

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 2012-02-24
    • 2023-03-17
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多