复杂文件名称处理

This commit is contained in:
xxqfamous 2023-06-05 14:29:14 +08:00
parent 677f9c2f4e
commit 6d8956e803
2 changed files with 6 additions and 3 deletions

View File

@ -74,7 +74,7 @@ class RepositoriesController < ApplicationController
end
def sub_entries
file_path_uri = URI.parse(URI.encode(params[:filepath].to_s.strip))
file_path_uri = URI.escape(URI.encode(params[:filepath].to_s.strip))
if @project.educoder?
if params[:type] === 'file'
@ -127,7 +127,7 @@ class RepositoriesController < ApplicationController
@commits = Educoder::Repository::Commits::ListService.call(@project&.project_educoder&.repo_name)
else
if params[:filepath].present?
file_path_uri = URI.parse(URI.encode(params[:filepath].to_s.strip))
file_path_uri = URI.escape(URI.encode(params[:filepath].to_s.strip))
@hash_commit = Gitea::Repository::Commits::FileListService.new(@owner.login, @project.identifier, file_path_uri,
sha: params[:sha], page: params[:page], limit: params[:limit], token: @owner&.gitea_token).call
else
@ -323,7 +323,7 @@ class RepositoriesController < ApplicationController
# TODO 获取最新commit信息
def project_commits
if params[:filepath].present?
file_path_uri = URI.parse(URI.encode(params[:filepath].to_s.strip))
file_path_uri = URI.escape(URI.encode(params[:filepath].to_s.strip))
Gitea::Repository::Commits::FileListService.new(@project.owner.login, @project.identifier, file_path_uri,
sha: get_ref, page: 1, limit: 1, token: @project&.owner&.gitea_token).call
else

View File

@ -115,6 +115,9 @@ class Gitea::ClientService < ApplicationService
url = [api_url(is_hat), api_rest].join('').freeze
url = action === 'get' ? url : URI.escape(url)
url = URI.escape(url) unless url.ascii_only?
url = url.gsub(")", "%29") if url.to_s.include?(")")
url = url.gsub("]", "%5D") if url.to_s.include?("]")
url = url.gsub("[", "%5B") if url.to_s.include?("[")
puts "[gitea] request url: #{url}"
return url
end