Bir webform PHP ile teslim İptal

6 Cevap php

Ben resim yükleme ile deneme için küçük bir site kullanarak ve onları görüntüleyen ediyorum.

Birisi "resim ekle" tıkladığında, onlar üzerinde bir form ile bir sayfaya yönlendirilirsiniz olsun. Onlar bir dosyayı seçin ve Gönder düğmesini tıklayabilirsiniz.

Ama ne şimdi yapmak istiyorum şudur: koymak ikinci göndermek sonraki normale onay butonu "İptal" etiketli butonu. Birisi sonra upload seçerse onlar dosyası tamamen yüklenir önce, PHP dosyanın yükleme durdurmak ve silmek gerekir iptal düğmesine basarsanız, seçer ve vurur, gönderin. Ve sonra sadece geri genel gidin.

Hayır Javascript olursa olsun kullanılabilir.

Ben sadece bir dosyayı ben submit düğmesine milisaniye kopyalamak beri ben sadece, bu yüzden kindof imkansız Bu test, localhost var. Hiçbir yükleme-time bir localhost ile ve ben sadece bunun için bir yerde bir sunucu satın almak gitmiyorum.

Temelde şimdi ne oluyor PHP gönderildiği düğmesi tespit olmasıdır. Gönder düğmesine gönderildiği, dosya iptal düğmesi gönderilir ise, sadece geri genel gider, yüklenir.

Ama PHP onun görevleri arka arkaya yapar. Yani bu çalışacağını sanmıyorum. Nasıl yükleme yapıyor durdurmak için PHP anlatır?

6 Cevap

Sen php ile düğmeye bakmak değil - PHP bu bilgiyi alır önce tüm istek gönderilmiş olacaktır.

Neler yapabileceğini koymak, bu gibi farklı bir <form> düğmesini iptal:

<form> <input type="file> <input type="submit" value="upload"> </form>
<form> <input type="submit" value="cancel"> </form>

(Bu elbette sadece bir örnektir - Eksik bit var).

Onlar iptal tıkladığınızda, tarayıcı onun isteğini terk edip yeni bir başlangıç, yükleme iptal etmelidir.

Greg has the right idea there. In stead of following the majority, or looking at how things are done, look at smart alternatives, like Greg's explanation above.

Herhangi bir yükleme istemci ve sunucu arasında geçerli bir bağlantı olmadan hiçbir fonksiyonu olamaz; Eğer tarayıcı penceresini kapatın, ya da başka bir yere yeniden doğrudan eğer dolayısıyla, yükleme öldürülür.

bir iframe kullanmak ve örneğin adlandırın:. "myframe". kolayca bir div gizleyebilirsiniz. Lütfen action = "somefile.php" ve target = "myframe" ile bir form var. Lütfen formun "dosya" alanına bir lil Javascript ekleyin: onFocus = "uploadlistener ()". sizin gibi bu işlev herhangi bir isim, ama kişi bir şey "açıldı" kontrol etmek için kullanabilirsiniz. tarayıcı otomatik olarak kullanıcı "browse" tıklandığında, ya da o da bir dosyayı açarsa, olsun, odak takas olacaktır. fark bir dosya "seçilmiş" sonra, giriş alanı yeniden odağı alır ancak "onFocus ()" olay bir dinleyici hatırlıyorum olduğunu. yani: alan boş değilse, çağrı: document.uploadform.submit ()

Using this method, you don't even need a submit button. if you want to skin your "browse" button, just make it transparent using CSS, eg: input name="myfile" type="file" style="width: 40px; -moz-opacity: 0; filter: alpha(opacity=0)" onFocus="somefunction()" Well to cancel upload just redirect the iframe to some other place, eg: input type="button" value="cancel" onClick="document.uploadform.action='blank.php'; document.uploadform.submit()"

Yukarıdaki html birden hatları üzerinden yayılıyorsa Pardon, ben burada ilanıyla ilk kez.

Ilerlemeyi izlemek için, şimdiye kadar yükleme başladı önce kontrol toplam dosya boyutu yüklenmiş olan kaç bayt kontrol etmek ya da PHP-5.2 veya bazı Perl script, bir sunucu tarafı dinleyici eklemeniz gerekir. Bu onay aralık bazı AJAX ile sağlandı, ya da terim bilmiyorsanız, aramak olabilir: HTTP İSTEĞİ. Bu arka planda sunucu tarafı kod çalışır ve tarayıcıda görmek istiyorsunuz, ama burada bir değişkene yakalayabilir, ve şeyler yapmak gibi bir yanıt verir. Ben bu herkes için yararlı olduğunu umuyoruz.

Ben bu yapılabilir sanmıyorum.

PHP çalışan ücretsiz (ya da çok ucuz) barındıran bir bolluk var onu test etmek istemiyordu, gerek "bir sunucu satın almak"

Devam eden bir dosya yükleme durdurmak için PHP için hiçbir yolu yoktur. Çalışıyorsa zaman, çok geç yani dosya yükleme bitene kadar PHP kodu bile başlamış değildir.

Gerçekten yüklemeyi iptal mümkün olmadığı ortaya çıkarsa kullanıcılar hemen (yani görüntü silinir) görüntü yükleme geri alabilirsiniz, böylece, undo veya işlevi silmek kolay bir uygulama düşünebilirsiniz. Bu deneyde yararlı olmayabilir, ama belki bir üretim uygulamasında kullanabilir?