質問編集履歴
8
情報の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -410,12 +410,6 @@
|
|
410
410
|
|
411
411
|
entry.extract(t.path) { true }
|
412
412
|
|
413
|
-
p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
414
|
-
|
415
|
-
p xxxxx
|
416
|
-
|
417
|
-
p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
418
|
-
|
419
413
|
@product.send("products_image#{num}=", t)
|
420
414
|
|
421
415
|
end
|
7
情報の追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -339,3 +339,89 @@
|
|
339
339
|
何が原因なのかわかりません。そもそもzipファイル内のファイルを意図した順番で並べることが不可能なのでしょうか?
|
340
340
|
|
341
341
|
なにかご教示いただけることがあれば、何卒よろしくお願いいたします。
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
##追記
|
346
|
+
|
347
|
+
zip.each do |entry|の中でencodingのコードを追加しましたが、問題点に変化がありません。
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
```ruby
|
352
|
+
|
353
|
+
Zip::File.open(zipfile.path) do |zip|
|
354
|
+
|
355
|
+
num = 0
|
356
|
+
|
357
|
+
zip.each do |entry|
|
358
|
+
|
359
|
+
unless entry.name.valid_encoding?
|
360
|
+
|
361
|
+
entry.name.force_encoding case NKF.guess(entry.name)
|
362
|
+
|
363
|
+
when NKF::EUC then 'euc-jp'
|
364
|
+
|
365
|
+
when NKF::SJIS then 'cp932'
|
366
|
+
|
367
|
+
when NKF::UTF8 then 'utf-8'
|
368
|
+
|
369
|
+
when NKF::UTF16 then 'utf-16'
|
370
|
+
|
371
|
+
when Encoding::EUCJP_MS then Encoding::EUCJP_MS
|
372
|
+
|
373
|
+
when Encoding::CP51932 then Encoding::CP51932
|
374
|
+
|
375
|
+
when Encoding::WINDOWS_31J then Encoding::WINDOWS_31J
|
376
|
+
|
377
|
+
else
|
378
|
+
|
379
|
+
# JISコードもしくは不明
|
380
|
+
|
381
|
+
raise "文字コードが想定外です"
|
382
|
+
|
383
|
+
end
|
384
|
+
|
385
|
+
entry.name.encode! 'utf-8'
|
386
|
+
|
387
|
+
end
|
388
|
+
|
389
|
+
ext = File.extname(entry.name) #拡張子を取得
|
390
|
+
|
391
|
+
# 隠しファイルやゴミファイルは飛ばす
|
392
|
+
|
393
|
+
next if ext.blank? || File.basename(entry.name).count(".") > 1
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
num += 1
|
398
|
+
|
399
|
+
if num > 30 then
|
400
|
+
|
401
|
+
break
|
402
|
+
|
403
|
+
end
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
# 一時ファイルを作る
|
408
|
+
|
409
|
+
Tempfile.open(["tempProductImageFile", ext]) do |t|
|
410
|
+
|
411
|
+
entry.extract(t.path) { true }
|
412
|
+
|
413
|
+
p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
414
|
+
|
415
|
+
p xxxxx
|
416
|
+
|
417
|
+
p "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
418
|
+
|
419
|
+
@product.send("products_image#{num}=", t)
|
420
|
+
|
421
|
+
end
|
422
|
+
|
423
|
+
end
|
424
|
+
|
425
|
+
end
|
426
|
+
|
427
|
+
```
|
6
不足があったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -14,6 +14,10 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
+
##試したこと
|
18
|
+
|
19
|
+
|
20
|
+
|
17
21
|
zipファイル内にはフォルダが5つあり、それぞれフォルダ名を「1」「2」「3」「4」「5」にしています。理由は、このフォルダの番号順にレコードを作成したいからです。
|
18
22
|
|
19
23
|
ちなみにフォルダ1に入っているファイルは1つ、フォルダ2に入っているファイルも1つ、フォルダ3からフォルダ5までに入っているファイルは複数あります。
|
5
情報に不足があったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
##環境
|
6
|
+
|
7
|
+
macOS High Sierra(バージョン10.13.6)
|
8
|
+
|
9
|
+
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin17]
|
10
|
+
|
11
|
+
Rails 4.2.6
|
12
|
+
|
13
|
+
rubyzip (1.2.2)
|
14
|
+
|
15
|
+
|
16
|
+
|
5
17
|
zipファイル内にはフォルダが5つあり、それぞれフォルダ名を「1」「2」「3」「4」「5」にしています。理由は、このフォルダの番号順にレコードを作成したいからです。
|
6
18
|
|
7
19
|
ちなみにフォルダ1に入っているファイルは1つ、フォルダ2に入っているファイルも1つ、フォルダ3からフォルダ5までに入っているファイルは複数あります。
|
4
誤まった文法を修正するため
test
CHANGED
File without changes
|
test
CHANGED
@@ -310,7 +310,7 @@
|
|
310
310
|
|
311
311
|
##問題点
|
312
312
|
|
313
|
-
1. UTF-8にするコードを書いてい
|
313
|
+
1. UTF-8にするコードを書いているが文字化けしている
|
314
314
|
|
315
315
|
2. 呼び出される順番がimages/1のファイル → images/1 → images/4のファイル → images/4 といったように、意図した順番にならない
|
316
316
|
|
3
不足を補うため
test
CHANGED
File without changes
|
test
CHANGED
@@ -304,7 +304,7 @@
|
|
304
304
|
|
305
305
|
```
|
306
306
|
|
307
|
-
*このアクション自体は成功します。
|
307
|
+
*このアクション自体は成功しますが、意図した順番とはちがいます。
|
308
308
|
|
309
309
|
|
310
310
|
|
2
誤りの修正のため
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,7 +92,7 @@
|
|
92
92
|
|
93
93
|
"1111111111111111111111111111111"
|
94
94
|
|
95
|
-
#<ActionDispatch::Http::UploadedFile:0x007fbfa9b5e440 @tempfile=#<Tempfile:/var/folders/zx/41df886555n2m1gp6mqb0kkh0000gn/T/RackMultipart20181221-75747-1in4i5x.zip>, @original_filename="images.zip", @content_type="application/zip", @headers="Content-Disposition: form-data; name=\"product[
|
95
|
+
#<ActionDispatch::Http::UploadedFile:0x007fbfa9b5e440 @tempfile=#<Tempfile:/var/folders/zx/41df886555n2m1gp6mqb0kkh0000gn/T/RackMultipart20181221-75747-1in4i5x.zip>, @original_filename="images.zip", @content_type="application/zip", @headers="Content-Disposition: form-data; name=\"product[zip]\"; filename=\"images.zip\"\r\nContent-Type: application/zip\r\n">
|
96
96
|
|
97
97
|
"1111111111111111111111111111111"
|
98
98
|
|
1
不足があったため
test
CHANGED
File without changes
|
test
CHANGED
@@ -78,6 +78,8 @@
|
|
78
78
|
|
79
79
|
end
|
80
80
|
|
81
|
+
end
|
82
|
+
|
81
83
|
```
|
82
84
|
|
83
85
|
|
@@ -302,13 +304,13 @@
|
|
302
304
|
|
303
305
|
```
|
304
306
|
|
305
|
-
|
307
|
+
*このアクション自体は成功します。
|
306
308
|
|
307
309
|
|
308
310
|
|
309
311
|
##問題点
|
310
312
|
|
311
|
-
1. UTF-8にするコードを書いていますが文字化けしてい
|
313
|
+
1. UTF-8にするコードを書いていますが文字化けしている
|
312
314
|
|
313
315
|
2. 呼び出される順番がimages/1のファイル → images/1 → images/4のファイル → images/4 といったように、意図した順番にならない
|
314
316
|
|