• 01-02-2014, 20:11:25
    #1
    Arkadaşlar kullandığım CMS aracılığı ile örneğin 55 adet resim yüklemeye çalışıyorum ama sadece 25 ini kabul ediyor.

    Kullandığım sistem CentOS 6.4 x64 Zpanel yüklü.

    CMS:Flat Manga


    Php.ini'deki değerleri aşağıdaki gibi değiştirdim;

    post_max_size 33M
    upload_max_filesize 32M
    max_execution_time 600



    Aşağıdaki değer ise dosyada yok idi ben herhangi bir yere ekledim;

    max_file_uploads 400


    Error Log;


    cont.uploadChapter
    <?php
     	include '../../../controllers/cont.main.php';
    
    //ini_set('display_errors', 1);
    //error_reporting(E_ALL);
    
    
    	/**
    	 * @var  CHANGE PROFILE PICTURE
    	 */
    	if(!$user->isAdmin()){ header('Location: ../index.html'); } 
    	if(isset($_POST)){
    	
    		$files = array();
    			$fdata = $_FILES['ImageFile'];
    			if(is_array($fdata['name'])){
    				for($i=0;$i<count($fdata['name']);++$i){
    					$files[]=array(
    					'name'    =>$fdata['name'][$i],
    					'type'  => $fdata['type'][$i],
    					'tmp_name'=>$fdata['tmp_name'][$i],
    					'error' => $fdata['error'][$i], 
    					'size'  => $fdata['size'][$i]  
    					);
    				}
    			}else $files[]=$fdata;
    			$target_path = '../uploads/manga/';
    			$folder = '../uploads/manga/'.$_POST[manga].'/';
    			$folder2 = '../uploads/manga/'.$_POST[path].'/';
    			if ( ! is_dir($folder)) {mkdir($folder);}
    			if ( ! is_dir($folder2)) {mkdir($folder2);}
    			foreach ($files as $file) { 
    				$target_path = $folder2 . time() .$file['name']; 
    				if(move_uploaded_file($file['tmp_name'], $target_path)) {
    					$content .= 'app/manga/'.substr($target_path."\xA", 3);
    				} else{
    					$user->alert('danger',$lang[img_content_up_error]);
    					$error = '1';
    				}
    			}
    			echo $content;
    
    	}
    chapter_management
     <? if(!$user->isAdmin()){ header('Location: ../index.html'); } ?>
    
     <div class="col-lg-8">
    	 <div class="panel panel-default">
    	  <div class="panel-heading">
    	    <h3 class="panel-title"><?=$l['Manga_List']?></h3>
    	  </div>
    	  <div class="panel-body">
    	  	<?=$user->alert('warning', $lang['Delete_chapter_warning'])?>
    	  	<p><a href="app=mangaview=add-chapter&manga=<?=$_GET['manga']?>" class="btn btn-success btn-small float-right"><i class="glyphicon glyphicon-plus"></i> <?=$lang['Add_new']?> <?=$lang['Chapter']?></a></p>
    	  	<br />
    	   	<div id="UserTableContainer" style="width: 100%;"></div>
    	  </div>
    	</div>
     </div>	
     <script type="text/javascript">
    
    		$(document).ready(function () {
    
    		    //Prepare jTable
    			$('#UserTableContainer').jtable({
    				title: 'Manga list',
    				paging: true,
    				pageSize: 20,
    				sorting: true,
    				defaultSorting: 'name ASC',
    				actions: {
    					listAction: '../app/manga/controllers/cont.chapterManagement.php?action=list&manga=<?=$_GET[manga]?>',
    					deleteAction: '../app/manga/controllers/cont.chapterManagement.php?action=delete&manga=<?=$_GET[manga]?>'
    				},
    				sorting: true,
    				messages: {
    				    serverCommunicationError: 'An error occured while communicating to the server.',
    				    loadingMessage: 'Loading chapter...',
    				    noDataAvailable: 'No data available!',
    				    addNewRecord: 'Add new User',
    				    editRecord: 'Edit User',
    				    areYouSure: 'Are you sure?',
    				    deleteConfirmation: 'This chapter will be deleted. Are you sure?',
    				    save: 'Save',
    				    saving: 'Saving',
    				    cancel: 'Cancel',
    				    deleteText: 'Delete',
    				    deleting: 'Deleting',
    				    error: 'Error',
    				    close: 'Close',
    				    cannotLoadOptionsFor: 'Can not load options for field {0}',
    				    pagingInfo: 'Showing {0}-{1} of {2}',
    				    pageSizeChangeLabel: 'Row count',
    				    gotoPageLabel: 'Go to page',
    				    canNotDeletedRecords: 'Can not deleted {0} of {1} chapters!',
    				    deleteProggress: 'Deleted {0} of {1} chapter, processing...'
    				},
    				fields: {
    					id: {
    						key: true,
    						create: false,
    						edit: false,
    						list: false
    					},
    					chapter: {
    						title: 'Chapter',
    						width: '20%'
    					},
    					name: {
    						title: 'Chapter name',
    						width: '20%'
    					},
    					MyButton: {
                   			title: '<?=$lang[Action]?>',
                   			width: '30%',
                   			sorting: false,
                    		display: function(data) {
                         	return '<a href="app=mangaview=edit-chapter&cid='+data.record.id+'" class="btn btn-sm btn-success"><i class="glyphicon glyphicon-wrench"></i> EDIT</a>';
                    		}
               			},
    				}
    			});
    
    			//Load person list from server
    			$('#UserTableContainer').jtable('load');
    
    		});
    
    	</script>
    add-chapter
     <? if(!$user->isAdmin()){ header('Location: ../index.html'); } ?>
    <div class="col-lg-8">
    	 <div class="panel panel-default">
    	  <div class="panel-heading">
    	    <h3 class="panel-title"><?=$lang['Add_new']?> <?=$lang['Chapter']?> (<?=$_GET['manga']?>)</h3>
    	  </div>
    	  <div class="panel-body">
    	   	<div id="UserTableContainer" style="width: 100%;">
    	   		<div id="addManga_output"></div>
    	   		<form id="addManga_form" role="form" method="POST" action="../app/manga/controllers/cont.addChapter.php">
    	   		  <input type="hidden" name="manga" value="<?=$_GET['manga']?>">
    			  <div class="form-group">
    			    <label for="exampleInputEmail1"><?=$lang['Chapter']?></label>
    			    <input type="text" id="chapterno" class="form-control" name="chapter">
    			  </div>
    			  <div class="form-group">
    			    <label for="exampleInputEmail1"><?=$lang['Name']?></label>
    			    <input type="text" class="form-control" name="name">
    			  </div>
    		     <div class="form-group">
    		     <label for="exampleInputEmail1"><?=$lang['Content']?></label><button data-toggle="modal" href="#myModal" type="button" class="btn btn-sm btn-success pull-right" style="padding:2px"><i class="glyphicon glyphicon-upload"></i> <?=$lang[Content_upload_ex]?></button>
    			    <textarea class="form-control" name="content" id="content" cols="100%" row="8" placeholder="http://example.com/images1.jpghttp://example.com/images2.jpghttp://example.com/images3.jpg"></textarea>
    		     	<?=$lang['Content_ex']?>
    		     </div>
    		     <div class="form-group">
    		     <label for="exampleInputEmail1" ><?=$lang['Group']?></label>
    			    <select name="trans_group" class="form-control">
    			    	<?=$h0manga->listGroup()?>
    			    </select>
    		     </div>
    			  <button type="submit" class="btn btn-default"><?=$l['Submit']?></button>
    			</form>
    
    	   	</div>
    	  </div>
    	</div>
     </div>	
     	<?=$user->ajaxForm('addManga','app=mangaview=chapter_management&manga='.$_GET['manga'])?>
     	<script> 
    		$(document).ready(function() { 
    			$('#cover_form').on('submit', function(e) {
    				e.preventDefault();
    			$('#cover_info_output').html("Waiting..");
    			$(this).ajaxSubmit({
    					beforeSubmit:  function(){
    					},
    					target: '#cover_output',
    					success: function() {
    						var img = $('#cover_output').text();
    						$( "#content" ).val( img );
    						$('#myModal').modal('hide');
    					}
    				});
    			});
    		});
    	</script>
    	<script type="text/javascript">
    	  $(function() {
    	     $("input:file").change(function (){
    	       $( "#cover_form" ).submit();
    	     });
    	    
    	     $("#chapterno").change(function (){
    	     	var chapterno = $( "#chapterno" ).val();
    			$( "#path" ).val( "<?=$_GET[manga]?>/"+chapterno );
    			$( "#path2").text( "<?=$_GET[manga]?>/"+chapterno );
    	     });
    
    	  });
    	</script>
    
    <div id="myModal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
          <div class="modal-dialog">
            <div class="modal-content">
    
              <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                <h4 class="modal-title" id="myModalLabel"><?=$lang['Upload']?> <?=$lang['Cover']?></h4>
              </div>
              <div class="modal-body">
                <h4><?=$lang['Select_file']?></h4>
                <p>
                	<div id="cover_info_output"></div>
                	<div id="cover_output"></div>
                	<form id="cover_form" action="../app/manga/controllers/cont.uploadChapter.php" method="POST" enctype="multipart/form-data">
                		<strong>PATH</strong>: app/manga/uploads/manga/<span id="path2"></span>/<br /><br />
                		<input type="hidden" name="manga" value="<?=$_GET['manga']?>">
                		<input type="hidden" name="path" id="path" class="form-control" style="display: inline; width: inherit;">
    		    		<input name="ImageFile[]" type="file" multiple="">
    		    	</form>
    		    </p>
    		  </div>
    
            </div><!-- /.modal-content -->
          </div><!-- /.modal-dialog -->
        </div>
  • 01-02-2014, 23:20:21
    #2
    sadece php.ini yi düzenlemeniz yetmeyebilir.

    httpd.conf içinde

    ThreadsPerChild default 25 gelir. onu 100 yapın. apache resrtart edin tekrar deneyin.
  • 01-02-2014, 23:46:41
    #3
    digiklan adlı üyeden alıntı: mesajı görüntüle
    sadece php.ini yi düzenlemeniz yetmeyebilir.

    httpd.conf içinde

    ThreadsPerChild default 25 gelir. onu 100 yapın. apache resrtart edin tekrar deneyin.
    Hocam 300 yaptım olmadı.Yine 25 resmi kabul etti. Bazı manga bölümlerinde 200 ü geçkin resim var o yüzden 300 yaptım. Scriptle alakalı sanırım ama Coder kabul etmiyor. 1 resmi upload ediyor gerisi beni ilgilendirmez diyor adam.

    -Normal hostlarda 20 adet resimi kabul ediyordu ama VPS e geçtim bu seferde 25 oldu bu sayı.
  • 02-02-2014, 00:05:34
    #4
    yüklediğiniz dosyaların boyutu nedir?
    post_max_size 33M
    upload_max_filesize 32M

    eğer 1mb lık dosyalar ise 32mb izin verildiğinde 32 dosya yükleyebilirsiniz.
    post_max_size bir postun maksimum değerini sınırlar.
    progamcının kodunda bir hata ya da sınırlama yok.
    adam gelen resimleri files globalinden alıp gelen resim sayısı kadar işlem yaptırıyor.
    25 resim gelirse 25 resim kaydeder kod.
    burada files globali yüklenen resimleri tutar.
    sunucunun izin verdiği kadar dosya yükleniyor.
    post_max_size
    ve upload max_size gibi değişkenleri 64mb ya da 128mb çıkararak deneyin.
  • 02-02-2014, 00:11:08
    #5
    digiklan adlı üyeden alıntı: mesajı görüntüle
    yüklediğiniz dosyaların boyutu nedir?
    post_max_size 33M
    upload_max_filesize 32M

    eğer 1mb lık dosyalar ise 32mb izin verildiğinde 32 dosya yükleyebilirsiniz.
    post_max_size bir postun maksimum değerini sınırlar.
    progamcının kodunda bir hata ya da sınırlama yok.
    adam gelen resimleri files globalinden alıp gelen resim sayısı kadar işlem yaptırıyor.
    25 resim gelirse 25 resim kaydeder kod.
    burada files globali yüklenen resimleri tutar.
    sunucunun izin verdiği kadar dosya yükleniyor.
    post_max_size
    ve upload max_size gibi değişkenleri 64mb ya da 128mb çıkararak deneyin.
    İlgilendiğiniz için gerçekten teşekkür ederim. 54 dosya deniyorum mesela hepsi 300 Kb ~ 400 Kb civarında. Bir tanesi 1.5 Mb boyutunda.

    Birde belki alakası olmayabilir ama apache yi yeniden başlatmak yerine sistemi yeniden başlattım. Apacheyi yeniden başlatmaya çalıştığımda

    "httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName"

    hatası alıyorum. Web sitem sorunsuz açılıyor ama böyle demesine rağmen. Sistemi yeniden başlatmam değişiklikleri uygular değil mi?
  • 02-02-2014, 00:15:05
    #6
    sistem restart ettiğinde apache çalışıyorsa restart olmuş demektir.
    medya siteleri için 32 mb düşük bir değer.
    bütün mb cinsinden değerleri en az 64mb yap.
    bir de php.ini dosyasında bak bakaım herhangi bir ayarda 25 diye kısıtlama var mı.
    basitçe 25 diye arama yap php.ini içinde.
  • 02-02-2014, 00:26:14
    #7
    digiklan adlı üyeden alıntı: mesajı görüntüle
    sistem restart ettiğinde apache çalışıyorsa restart olmuş demektir.
    medya siteleri için 32 mb düşük bir değer.
    bütün mb cinsinden değerleri en az 64mb yap.
    bir de php.ini dosyasında bak bakaım herhangi bir ayarda 25 diye kısıtlama var mı.
    basitçe 25 diye arama yap php.ini içinde.
    Birde ben "/etc/httpd/conf/httpd.conf" yolundaki httpd.conf dosyasında değişiklik yaptım.

    "/etc/apache2/httpd.conf" birde burda mı var httpd.conf dosyası anlamadım.



    25 olan değerler. Bu ikisi haricinde php.ini de 25 olan değer yok.

    -smtp_port=25

    Specify max number of processes. -1 = library default
    ; msdlib defaults to 25
    ; FreeTDS defaults to 4096
    ;mssql.max_procs = -1
  • 02-02-2014, 00:41:06
    #8
    bir yerde eksik bir ayar yapıyorsun hocam.
    ama nerede...
  • 02-02-2014, 00:50:32
    #9
    digiklan adlı üyeden alıntı: mesajı görüntüle
    bir yerde eksik bir ayar yapıyorsun hocam.
    ama nerede...
    Coder bunu demiş;

    "I can only send 20 pages to the server by Admin: Change your server’s ini – raise: max_file_uploads and you can upload more, if you using shared hosting, contact your hosting provider."


    Ben max_file_uploads'ı php.ini'de arattım ama bulamadım. Rasgele bir yere ekledim. Fark eder mi o?