Ben (http://swfupload.org) SWFUpload ile deney yaşıyorum ve PHP, veri hala $ _FILES dizi olacak, merak ediyorum. Eğer değilse, nereye gidiyor?
Ben (http://swfupload.org) SWFUpload ile deney yaşıyorum ve PHP, veri hala $ _FILES dizi olacak, merak ediyorum. Eğer değilse, nereye gidiyor?
Ben SWFUpload ve PHP kullanarak tam bir örnek göndermek için gidiyorum. Ben SWFUpload belgeler yeni başlayanlar için çok yararlı değildir ve bu örnek birçok insana yardımcı olacağını inanıyorum. indirmek için gerekenleri takip ediyor
SWFUpload adında bir klasör oluşturun ve içine 2.2.xy çekirdek aşağıdaki dosyaları kopyalamak
2.2.x demolar dosyaların aşağıdaki kopyalama bizim SWFUpload klasörünün içine klasör
Şimdi SWFUpload klasörün içindeki (o receiver.php diyoruz) dosyayı almak için bir PHP komut dosyası oluşturun. Şimdi tüm gerekli dosyaları içeren belge kök içinde SWFUpload adında bir klasör var.
<!-- file upload component -->
<div class="fieldset flash" id="fsUploadProgress">
<span class="legend">Upload Queue</span>
</div>
<div id="divStatus">No Files Uploaded</div>
<div>
<span id="spanButtonPlaceHolder"></span>
<input id="btnCancel" type="button" value="Cancel All Uploads" onclick="swfu.cancelQueue();" disabled="disabled" style="margin-left: 2px; font-size: 8pt; height: 29px;" />
</div>
şimdi SWFUpload css dosyayı eklemek ve test html içinde javascript dosyaları gereklidir. biz de SWFUpload kontrolü ile etkileşim için gerekli JS başlatmak ve yapılandırmak zorunda.
<link href="/swfupload/default.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="/swfupload/swfupload.js"></script>
<script type="text/javascript" src="/swfupload/js/swfupload.queue.js"></script>
<script type="text/javascript" src="/swfupload/js/fileprogress.js"></script>
<script type="text/javascript" src="/swfupload/js/handlers.js"></script>
<script type="text/javascript">
//attach events
$(document).ready(function(){
$("a.removeMedia").live("click", function(event){
event.preventDefault();
var docId = $(this).attr("id");
//remove flexi data
webgloo.gMedia.table.removeRow(docId);
}) ;
//initialize gMedia table with documentId coming from server
webgloo.gMedia.debug = false ;
webgloo.gMedia.table.load();
});
//swffileupload related javascript
var swfu;
window.onload = function() {
var settings = {
flash_url : "/swfupload/swfupload.swf",
upload_url: "/swfupload/receiver.php",
post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"},
file_size_limit : "10 MB",
file_types : "*.*",
file_types_description : "All Files",
file_upload_limit : 100,
file_queue_limit : 0,
custom_settings : {
progressTarget : "fsUploadProgress",
cancelButtonId : "btnCancel"
},
debug: false,
// Button settings
button_image_url: "/swfupload/images/TestImageNoText_65x29.png",
button_width: "65",
button_height: "29",
button_placeholder_id: "spanButtonPlaceHolder",
button_text: '<span class="theFont">Upload</span>',
button_text_style: ".theFont { font-size: 16; }",
button_text_left_padding: 12,
button_text_top_padding: 3,
// The event handler functions are defined in handlers.js
file_queued_handler : fileQueued,
file_queue_error_handler : fileQueueError,
file_dialog_complete_handler : fileDialogComplete,
upload_start_handler : uploadStart,
upload_progress_handler : uploadProgress,
upload_error_handler : uploadError,
upload_success_handler : uploadSuccess,
upload_complete_handler : uploadComplete,
queue_complete_handler : queueComplete // Queue plugin event
};
swfu = new SWFUpload(settings);
};
</script>
Eğer ayarları yapmanız gereken değişiklikleri bakın. Şimdi PHP komut vurmak için ayarlanır. Biz PHP komut vuracaktır ve PHP script test html (doc konumu gibi şeyler, ya da bir DB, isim, boyut, mim saklanması ise DOC_ID) kullanmak vb iade edilebilir ki bazı yanıt dönecektir.
PHP dosyaları işlemek için nasıl biliyorsanız o zaman bilmeniz gereken tek şey SWFUpload tarafından gönderilen dosya öğe adı Filedata olmasıdır. Tüm detayları bir dinlenme. $ HTTP_POST_FILES üzerinden dosya yükleme işleme sonra, alıcı script html belge detayları ile güncelleştirmek için kullanılabilecek bazı verileri dönebilirsiniz. SWFUpload forumda dahil PHP yükleme örnek saf spagetti. Eğer bir nesne yönelimli modelin @ bakmak istiyorsanız, aşağıdaki dosyaları @ bakmak
http://code.google.com/p/localo/source/browse/job/web/swfupload/receiver.php http://code.google.com/p/localo/source/browse/lib/webgloo/common/Upload.php http://code.google.com/p/localo/source/browse/lib/webgloo/job/FileUpload.php
Bu açıklama amacıyla sadece. Benim kütüphanede bağımlılıkları olduğu gibi olduğu gibi kod çalışmaz.
Bu son adımdır. Sunucu komut başarılı bir yükleme üzerinde döner ne kablolama yapabileceğiniz yolu açıktır (depolama döndürülen dosya daha vb diğer bazı komut gönderebilirsiniz için belgede URI yüklemek demek) html güncellemek için SWFUpload javascript işleyicileri biri tarafından işlenmiş olmalıdır yukarı / SWFUpload / js / handlers.js ve orada değişiklik yapmak.
function uploadSuccess(file, serverData) {
// The php script may return an error message etc. but the handler event for swfupload
// client is still uploadSuccess. we have to parse data returned from server to find known/script
// error case.
try {
var progress = new FileProgress(file, this.customSettings.progressTarget);
//try parsing server data now
var dataObj ;
try{
if(webgloo.gMedia.debug) {
alert("server returned => " + serverData);
}
dataObj = JSON.parse(serverData);
//process server data
if(dataObj.error === undefined || dataObj.error != 'yes'){
//no error object or error is not yes!
//process document object received from server
webgloo.gMedia.table.addRow(dataObj.document.uuid, dataObj.document.originalName);
progress.setComplete();
progress.setStatus(dataObj.message);
progress.toggleCancel(false);
}else {
//known error
progress.setStatus("Error: " + dataObj.message);
}
} catch(ex) {
//we need to gaurd against JSON parsing errors as well
progress.setStatus("Error: " + ex.toString());
}
} catch (ex) {
this.debug(ex);
}
}
Sıcak burada kendi javascript tel olabilir. Bir örnek için (ben belgelerin bir tablo güncelleştiriyorum ve form belgede bir json dize olarak döndürülen belgeleri meta verilerini depolamak) buraya bakın lütfen:
http://code.google.com/p/localo/source/browse/job/web/js/main.js
Ben bu SWFUpload başlamak için yeterli bilgi umuyoruz. Mutlu kodlama :)