mirror of
				https://github.com/gitbucket/gitbucket.git
				synced 2025-11-04 04:25:59 +01:00 
			
		
		
		
	Fix image files presentation at blob view and diff view.
This commit is contained in:
		@@ -1,13 +1,21 @@
 | 
				
			|||||||
package util
 | 
					package util
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.io.FilenameUtils
 | 
					import org.apache.commons.io.FilenameUtils
 | 
				
			||||||
 | 
					import java.net.URLConnection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
object FileTypeUtil {
 | 
					object FileTypeUtil {
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  def isImage(name: String): Boolean = FilenameUtils.getExtension(name).toLowerCase match {
 | 
					  def getMimeType(name: String): String = {
 | 
				
			||||||
    case "jpg"|"jpeg"|"bmp"|"gif"|"png" => true
 | 
					    val fileNameMap = URLConnection.getFileNameMap()
 | 
				
			||||||
    case _ => false
 | 
					    val mimeType = fileNameMap.getContentTypeFor(name)
 | 
				
			||||||
 | 
					    if(mimeType == null){
 | 
				
			||||||
 | 
					      "application/octeat-stream"
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					      mimeType
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  def isImage(name: String): Boolean = getMimeType(name).startsWith("image/")
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  def isLarge(size: Long): Boolean = (size > 1024 * 1000)
 | 
					  def isLarge(size: Long): Boolean = (size > 1024 * 1000)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -402,9 +402,13 @@ object JGitUtil {
 | 
				
			|||||||
      
 | 
					      
 | 
				
			||||||
      import scala.collection.JavaConverters._
 | 
					      import scala.collection.JavaConverters._
 | 
				
			||||||
      git.diff.setNewTree(newTreeIter).setOldTree(oldTreeIter).call.asScala.map { diff =>
 | 
					      git.diff.setNewTree(newTreeIter).setOldTree(oldTreeIter).call.asScala.map { diff =>
 | 
				
			||||||
 | 
					        if(FileTypeUtil.isImage(diff.getOldPath) || FileTypeUtil.isImage(diff.getNewPath)){
 | 
				
			||||||
 | 
					          DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath, None, None) 
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
          DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
 | 
					          DiffInfo(diff.getChangeType, diff.getOldPath, diff.getNewPath,
 | 
				
			||||||
            JGitUtil.getContent(git, diff.getOldId.toObjectId, false).map(new String(_, "UTF-8")), 
 | 
					            JGitUtil.getContent(git, diff.getOldId.toObjectId, false).map(new String(_, "UTF-8")), 
 | 
				
			||||||
            JGitUtil.getContent(git, diff.getNewId.toObjectId, false).map(new String(_, "UTF-8")))
 | 
					            JGitUtil.getContent(git, diff.getNewId.toObjectId, false).map(new String(_, "UTF-8")))
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }.toList
 | 
					      }.toList
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
      // initial commit
 | 
					      // initial commit
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,7 +28,8 @@
 | 
				
			|||||||
          <textarea id="newText-@i" style="display: none;">@diff.newContent.getOrElse("")</textarea>
 | 
					          <textarea id="newText-@i" style="display: none;">@diff.newContent.getOrElse("")</textarea>
 | 
				
			||||||
          <textarea id="oldText-@i" style="display: none;">@diff.oldContent.getOrElse("")</textarea>
 | 
					          <textarea id="oldText-@i" style="display: none;">@diff.oldContent.getOrElse("")</textarea>
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
        Too big file not shown
 | 
					          Not supported
 | 
				
			||||||
 | 
					          @*Too big file not shown*@
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      </td>
 | 
					      </td>
 | 
				
			||||||
    </tr>
 | 
					    </tr>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user