PHP Hata - Dosya yükleme

oy
12

Benim Web sunucusu üzerinde bir klasöre dosya yüklemek için bazı PHP yazmaya çalışıyorum. İşte ne var:

<?php
    if ( !empty($_FILES['file']['tmp_name']) ) {
        move_uploaded_file($_FILES['file']['tmp_name'], './' . $_FILES['file']['name']);
        header('Location: http://www.mywebsite.com/dump/');
        exit;
    }
?>

<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.1//EN
    http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd>
<html>
    <head>
        <title>Dump Upload</title>
    </head>
    <body>
        <h1>Upload a File</h1>
        <form action=upload.php enctype=multipart/form-data method=post>
            <input type=hidden name=MAX_FILE_SIZE value=1000000000 />
            Select the File:<br /><input type=file name=file /><br />
            <input type=submit value=Upload />
        </form>
    </body>
</html>

Bu hataları alıyorum:

Uyarı: move_uploaded_file (./ sınama.txt) [function.move yüklenen dosya]: failed to open stream: E izin engellendi: \ inetpub \ vhosts \ mywebsite.com \ httpdocs dökümü \ upload.php \ 3. hatta

Uyarı: move_uploaded_file () [function.move yüklenen dosya]: E './test.txt' için: '\ WINDOWS \ Sıcaklık \ phpA30E.tmp C: hareket yapamaz \ inetpub \ vhosts \ mywebsite.com \ httpdocs 3. hatta dökümü \ upload.php \

Uyarı: başlık bilgilerini değiştirilemiyor - zaten tarafından gönderilen başlıklar (çıkış E başladı: \ inetpub \ vhosts \ mywebsite.com \ httpdocs dökümü \ upload.php \: 3) E: \ inetpub \ vhosts \ mywebsite.com \ httpdocs \ 4. hatta \ upload.php dökümü

PHP sürümü 4.4.7 Windows kutuyu Running IIS. Bu özel dosya / klasör 777 izinlere sahiptir.

Herhangi bir fikir?

Oluştur 06/08/2008 saat 17:13
kaynak kullanıcı
Diğer dillerde...                            


8 cevaplar

oy
1

Uyarı: move_uploaded_file () [function.move yüklenen dosya]: E './people.xml' için: '\ WINDOWS \ Sıcaklık \ phpA30E.tmp C: hareket yapamaz \ inetpub \ vhosts \ mywebsite.com \ httpdocs 3. hatta dökümü \ upload.php \

bunu senin istediğin ve bu normal bir izinleri sorunu demektir nereye dosyayı koyamazsınız diyor önemli çizgidir

Orada bir dosya yazmak için haklarını uygulamasına (php için normalde webserverların süreci) yayınlanmaya sürecini kontrol edin.

DÜZENLE:

Silahı ilk satırda dosyasının yolunu doğru biraz atladı biraz bekle?

Cevap 06/08/2008 saat 17:15
kaynak kullanıcı

oy
7

O Windows'u var gibi kullandığınız takdirde, hiçbir gerçek 777. yoktur chmod Windows ile ilgili yorumları kontrol.

IIS Hesabı bu iki klasörlere erişmek (okuma, yazma, değiştirme) olduğunu kontrol edin:

E:\inetpub\vhosts\mywebsite.com\httpdocs\dump\
C:\WINDOWS\Temp\
Cevap 06/08/2008 saat 17:16
kaynak kullanıcı

oy
3

Bir yol eklemeyi deneyin. Aşağıdaki kod benim için çalışıyor:

<?php

if ( !empty($_FILES['file']) ) {
    $from = $_FILES['file']['tmp_name'];
    $to = dirname(__FILE__).'/'.$_FILES['file']['name'];

    if( move_uploaded_file($from, $to) ){
        echo 'Success';   
    } else {
        echo 'Failure';   
    }

    header('Location: http://www.mywebsite.com/dump/');
    exit;
}
?>
Cevap 07/08/2008 saat 13:06
kaynak kullanıcı

oy
16

Aman Tanrım

move_uploaded_file($_FILES['file']['tmp_name'], './' . $_FILES['file']['name']);

Bunu yapma. $_FILES['file']['name']olabilir ../../../../boot.iniveya kötü şeylerin herhangi bir sayı. Bu isim güven asla. Başka dosya şey yeniden adlandırabilir ve rasgele adla orijinal adı ilişkilendirmek gerekir. Minimum kullanım anda basename($_FILES['file']['name']).

Cevap 13/12/2008 saat 18:17
kaynak kullanıcı

oy
1

Başka bir Windows kutusuna / dizin ayırıcı kullandığınız olduğunu gözlemlemek düşünüyorum ..

Cevap 12/02/2009 saat 18:14
kaynak kullanıcı

oy
1

'Döküm' klasörler güvenlik persmissions grubunda IIS kullanıcı ekleme ve okuma / yazma erişimi verir.

Cevap 03/12/2009 saat 05:12
kaynak kullanıcı

oy
0

Klasör izni ile "imaj" adlı bir klasör oluşturun 777

<?php
    move_uploaded_file($_FILES['file']['tmp_name'],"image/".$_FILES['file']['name']);
?>
Cevap 16/11/2012 saat 13:51
kaynak kullanıcı

oy
0

Biz yolun altına kullanarak bulundu

{['DOCUMENT_ROOT'] + 'path to folder'

ve klasöre veren herkesin tam erişim sorunu çözüldü.

emin olun adres çubuğuna yerini belirtmiyor için. uzağa yerini vererek anlamı yok.

Cevap 05/12/2019 saat 20:59
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more