0

ファイルダウンロード用の次のスクリプトがあります。

function download(){
        $this->file = $this->getFile();
        if($this->filesize <= 0 || $this->filesize == null){
            echo $this->filesize;
        } else {
           set_time_limit(0);

            header('Content-Description: File Transfer');
            header('Content-type:'.$this->contenttype);
            header('Content-Disposition: attachment; filename='.$this->filename.'.'.$this->extension);
            header('Content-Transfer-Encoding: binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Pragma: public');
            ob_end_clean();
            readfile('/upload/'.$this->fileUid.'.'.$this->extension);
        }

        die();
    }

小さなサイズ (Kbs 単位) のファイルをダウンロードしようとすると、ファイルは正常にダウンロードされますが、ファイル サイズが大きい場合、つまり 1MB を超える場合、ファイルは正しくダウンロードされません。どちらかを開きます。この点で親切に助けてもらえますか、私は試しob_end_clean()ましたがうまくいきませんでした。親切に私を助けてください。よろしく、

4

1 に答える 1

2

質問のコメントで解決したように、ファイルはサーバーに存在しません。したがって、本当の問題はアップロードスクリプトです。

ファイルアップロードの一般的な落とし穴を読む必要があります私の推測ではupload_max_filesize、これらの落とし穴のいずれかである可能性がありますが、サーバーのセットアップによって異なります。

于 2013-10-23T21:07:15.663 に答える