Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
media-resource
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨昕
media-resource
Commits
b6d871e2
Commit
b6d871e2
authored
Mar 24, 2021
by
杨昕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
code format
parent
689b2a98
Pipeline
#14000
passed with stages
in 43 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
469 additions
and
0 deletions
+469
-0
MediasExport.php
app/Exports/MediasExport.php
+39
-0
MediasImport.php
app/Imports/MediasImport.php
+12
-0
excel.php
config/excel.php
+328
-0
batch_media.blade.php
resources/views/admin/media/batch_media.blade.php
+90
-0
No files found.
app/Exports/MediasExport.php
0 → 100644
View file @
b6d871e2
<?php
namespace
App\Exports
;
use
App\Model\MediaModel
;
use
Maatwebsite\Excel\Concerns\FromArray
;
use
Maatwebsite\Excel\Concerns\FromQuery
;
use
Maatwebsite\Excel\Concerns\Exportable
;
use
Maatwebsite\Excel\Concerns\WithHeadings
;
class
MediasExport
implements
WithHeadings
,
FromArray
{
use
Exportable
;
public
function
__construct
(
$params
)
{
$this
->
media_ids
=
$params
;
}
/**
* 设置表头
* @return array
*/
public
function
headings
()
:
array
{
return
[
'媒资编号'
,
'视频名称'
,
"永久播放地址"
,
"预览地址"
,
"全屏预览地址"
];
}
public
function
array
()
:
array
{
return
$this
->
media_ids
;
}
}
app/Imports/MediasImport.php
0 → 100644
View file @
b6d871e2
<?php
namespace
App\Imports
;
use
Maatwebsite\Excel\Concerns\Importable
;
use
Maatwebsite\Excel\Concerns\WithHeadingRow
;
use
Maatwebsite\Excel\Concerns\WithEvents
;
use
Maatwebsite\Excel\Concerns\RegistersEventListeners
;
class
MediasImport
implements
WithHeadingRow
,
WithEvents
{
use
Importable
,
RegistersEventListeners
;
}
\ No newline at end of file
config/excel.php
0 → 100644
View file @
b6d871e2
<?php
use
Maatwebsite\Excel\Excel
;
return
[
'exports'
=>
[
/*
|--------------------------------------------------------------------------
| Chunk size
|--------------------------------------------------------------------------
|
| When using FromQuery, the query is automatically chunked.
| Here you can specify how big the chunk should be.
|
*/
'chunk_size'
=>
1000
,
/*
|--------------------------------------------------------------------------
| Pre-calculate formulas during export
|--------------------------------------------------------------------------
*/
'pre_calculate_formulas'
=>
false
,
/*
|--------------------------------------------------------------------------
| Enable strict null comparison
|--------------------------------------------------------------------------
|
| When enabling strict null comparison empty cells ('') will
| be added to the sheet.
*/
'strict_null_comparison'
=>
false
,
/*
|--------------------------------------------------------------------------
| CSV Settings
|--------------------------------------------------------------------------
|
| Configure e.g. delimiter, enclosure and line ending for CSV exports.
|
*/
'csv'
=>
[
'delimiter'
=>
','
,
'enclosure'
=>
'"'
,
'line_ending'
=>
PHP_EOL
,
'use_bom'
=>
false
,
'include_separator_line'
=>
false
,
'excel_compatibility'
=>
false
,
],
/*
|--------------------------------------------------------------------------
| Worksheet properties
|--------------------------------------------------------------------------
|
| Configure e.g. default title, creator, subject,...
|
*/
'properties'
=>
[
'creator'
=>
''
,
'lastModifiedBy'
=>
''
,
'title'
=>
''
,
'description'
=>
''
,
'subject'
=>
''
,
'keywords'
=>
''
,
'category'
=>
''
,
'manager'
=>
''
,
'company'
=>
''
,
],
],
'imports'
=>
[
/*
|--------------------------------------------------------------------------
| Read Only
|--------------------------------------------------------------------------
|
| When dealing with imports, you might only be interested in the
| data that the sheet exists. By default we ignore all styles,
| however if you want to do some logic based on style data
| you can enable it by setting read_only to false.
|
*/
'read_only'
=>
true
,
/*
|--------------------------------------------------------------------------
| Ignore Empty
|--------------------------------------------------------------------------
|
| When dealing with imports, you might be interested in ignoring
| rows that have null values or empty strings. By default rows
| containing empty strings or empty values are not ignored but can be
| ignored by enabling the setting ignore_empty to true.
|
*/
'ignore_empty'
=>
false
,
/*
|--------------------------------------------------------------------------
| Heading Row Formatter
|--------------------------------------------------------------------------
|
| Configure the heading row formatter.
| Available options: none|slug|custom
|
*/
'heading_row'
=>
[
'formatter'
=>
'slug'
,
],
/*
|--------------------------------------------------------------------------
| CSV Settings
|--------------------------------------------------------------------------
|
| Configure e.g. delimiter, enclosure and line ending for CSV imports.
|
*/
'csv'
=>
[
'delimiter'
=>
','
,
'enclosure'
=>
'"'
,
'escape_character'
=>
'\\'
,
'contiguous'
=>
false
,
'input_encoding'
=>
'UTF-8'
,
],
/*
|--------------------------------------------------------------------------
| Worksheet properties
|--------------------------------------------------------------------------
|
| Configure e.g. default title, creator, subject,...
|
*/
'properties'
=>
[
'creator'
=>
''
,
'lastModifiedBy'
=>
''
,
'title'
=>
''
,
'description'
=>
''
,
'subject'
=>
''
,
'keywords'
=>
''
,
'category'
=>
''
,
'manager'
=>
''
,
'company'
=>
''
,
],
],
/*
|--------------------------------------------------------------------------
| Extension detector
|--------------------------------------------------------------------------
|
| Configure here which writer/reader type should be used when the package
| needs to guess the correct type based on the extension alone.
|
*/
'extension_detector'
=>
[
'xlsx'
=>
Excel
::
XLSX
,
'xlsm'
=>
Excel
::
XLSX
,
'xltx'
=>
Excel
::
XLSX
,
'xltm'
=>
Excel
::
XLSX
,
'xls'
=>
Excel
::
XLS
,
'xlt'
=>
Excel
::
XLS
,
'ods'
=>
Excel
::
ODS
,
'ots'
=>
Excel
::
ODS
,
'slk'
=>
Excel
::
SLK
,
'xml'
=>
Excel
::
XML
,
'gnumeric'
=>
Excel
::
GNUMERIC
,
'htm'
=>
Excel
::
HTML
,
'html'
=>
Excel
::
HTML
,
'csv'
=>
Excel
::
CSV
,
'tsv'
=>
Excel
::
TSV
,
/*
|--------------------------------------------------------------------------
| PDF Extension
|--------------------------------------------------------------------------
|
| Configure here which Pdf driver should be used by default.
| Available options: Excel::MPDF | Excel::TCPDF | Excel::DOMPDF
|
*/
'pdf'
=>
Excel
::
DOMPDF
,
],
/*
|--------------------------------------------------------------------------
| Value Binder
|--------------------------------------------------------------------------
|
| PhpSpreadsheet offers a way to hook into the process of a value being
| written to a cell. In there some assumptions are made on how the
| value should be formatted. If you want to change those defaults,
| you can implement your own default value binder.
|
| Possible value binders:
|
| [x] Maatwebsite\Excel\DefaultValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\StringValueBinder::class
| [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class
|
*/
'value_binder'
=>
[
'default'
=>
Maatwebsite\Excel\DefaultValueBinder
::
class
,
],
'cache'
=>
[
/*
|--------------------------------------------------------------------------
| Default cell caching driver
|--------------------------------------------------------------------------
|
| By default PhpSpreadsheet keeps all cell values in memory, however when
| dealing with large files, this might result into memory issues. If you
| want to mitigate that, you can configure a cell caching driver here.
| When using the illuminate driver, it will store each value in a the
| cache store. This can slow down the process, because it needs to
| store each value. You can use the "batch" store if you want to
| only persist to the store when the memory limit is reached.
|
| Drivers: memory|illuminate|batch
|
*/
'driver'
=>
'memory'
,
/*
|--------------------------------------------------------------------------
| Batch memory caching
|--------------------------------------------------------------------------
|
| When dealing with the "batch" caching driver, it will only
| persist to the store when the memory limit is reached.
| Here you can tweak the memory limit to your liking.
|
*/
'batch'
=>
[
'memory_limit'
=>
60000
,
],
/*
|--------------------------------------------------------------------------
| Illuminate cache
|--------------------------------------------------------------------------
|
| When using the "illuminate" caching driver, it will automatically use
| your default cache store. However if you prefer to have the cell
| cache on a separate store, you can configure the store name here.
| You can use any store defined in your cache config. When leaving
| at "null" it will use the default store.
|
*/
'illuminate'
=>
[
'store'
=>
null
,
],
],
/*
|--------------------------------------------------------------------------
| Transaction Handler
|--------------------------------------------------------------------------
|
| By default the import is wrapped in a transaction. This is useful
| for when an import may fail and you want to retry it. With the
| transactions, the previous import gets rolled-back.
|
| You can disable the transaction handler by setting this to null.
| Or you can choose a custom made transaction handler here.
|
| Supported handlers: null|db
|
*/
'transactions'
=>
[
'handler'
=>
'null'
,
],
'temporary_files'
=>
[
/*
|--------------------------------------------------------------------------
| Local Temporary Path
|--------------------------------------------------------------------------
|
| When exporting and importing files, we use a temporary file, before
| storing reading or downloading. Here you can customize that path.
|
*/
'local_path'
=>
storage_path
(
'framework/laravel-excel'
),
/*
|--------------------------------------------------------------------------
| Remote Temporary Disk
|--------------------------------------------------------------------------
|
| When dealing with a multi server setup with queues in which you
| cannot rely on having a shared local temporary path, you might
| want to store the temporary file on a shared disk. During the
| queue executing, we'll retrieve the temporary file from that
| location instead. When left to null, it will always use
| the local path. This setting only has effect when using
| in conjunction with queued imports and exports.
|
*/
'remote_disk'
=>
null
,
'remote_prefix'
=>
null
,
/*
|--------------------------------------------------------------------------
| Force Resync
|--------------------------------------------------------------------------
|
| When dealing with a multi server setup as above, it's possible
| for the clean up that occurs after entire queue has been run to only
| cleanup the server that the last AfterImportJob runs on. The rest of the server
| would still have the local temporary file stored on it. In this case your
| local storage limits can be exceeded and future imports won't be processed.
| To mitigate this you can set this config value to be true, so that after every
| queued chunk is processed the local temporary file is deleted on the server that
| processed it.
|
*/
'force_resync_remote'
=>
null
,
],
];
resources/views/admin/media/batch_media.blade.php
0 → 100644
View file @
b6d871e2
<!DOCTYPE html>
<html>
@include('admin.common.commonMedia')
<link
rel=
"stylesheet"
href=
"{{asset('xadmin/extra/date/datepicker.css')}}"
>
<script
src=
"{{ asset('xadmin/extra/date/datepicker.js')}}"
></script>
<script
src=
"{{ asset('xadmin/extra/date/datepicker.zh-CN.js')}}"
></script>
<body>
<!--====================================================
MAIN NAVBAR
======================================================-->
@include('admin.common.header')
<!--====================================================
PAGE CONTENT
======================================================-->
<div
class=
"page-content d-flex align-items-stretch"
>
<!--***** SIDE NAVBAR *****-->
@include('admin.common.left')
<div
class=
"content-inner chart-cont"
>
<div
class=
"card form"
>
<div
class=
"card-header"
>
<h3><i
class=
"fa fa-user-circle"
></i>
批处理
</h3>
</div>
<br>
<!--***** CONTENT *****-->
<div
class=
"row ml20 batch-list"
>
<form
action=
"{{ asset('/web/media_manager/import_batch_media') }}"
method=
"post"
enctype=
"multipart/form-data"
>
{{ method_field('POST')}}
<input
type=
"hidden"
name=
"_token"
value=
"{{csrf_token()}}"
/>
<div
class=
"item-name"
>
批量导出预览视频连接
</div>
<div
class=
"form-group"
>
<input
type=
"file"
class=
"btn btn-info"
id=
"uploadFile"
name=
"uploadFile"
accept=
".xls,.xlsx"
>
</div>
<button
class=
"btn btn-info batch-media"
type=
"submit"
id=
"batch-media"
disabled
>
提交
</button>
</form>
</div>
</div>
</div>
</div>
<!--Global Javascript -->
@include('admin.common.foot')
<!--Core Javascript -->
<script
src=
"{{ asset('xadmin/extra/toast/js/toast.js')}}"
></script>
<style>
.form
{
min-height
:
734px
;
}
.batch-list
{
font-size
:
18px
;
font-weight
:
400
;
}
.batch-media
{
margin-top
:
10px
;
}
</style>
<script>
/**
* 点击上传文件,触发input type="file"
*/
$
(
"#uploadFile"
).
change
(
function
()
{
$
(
"#batch-media"
).
removeAttr
(
"disabled"
);
var
fileInput
=
$
(
'#uploadFile'
).
get
(
0
).
files
[
0
];
if
(
fileInput
===
undefined
){
$
(
"#batch-media"
).
attr
(
"disabled"
,
true
);
}
})
</script>
</body>
</html>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment