以334為例:
let reg = /(.{3})(.{3})(.{4})/;
"0123456789".match(reg);再給后臺上傳圖片路徑,可是獲取的圖片路徑一直是64位編碼的,后臺只要正常的圖片路徑
首先,這不是 base64編碼的路徑,這就是base64編碼之后的圖片實體,準確的說是 base64編碼的DATA URI你通過H5的 File API拿到這一大坨DATA URI是沒問題的;
然后,"后臺只要正常的圖片路徑" 這是扯犢子,前端上傳個本地的 URL 路徑(比如c://assets/pic1.jpg)給后臺是沒有意義的,后臺需要的是你上面的那一大坨base64 URI,他需要自己decode
const fs = require('fs');
const path = require('path');
const baseStr = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKUAAAA6CAIAAABeeQ4bAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyNpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MUNBNDgwNEFEQjhFMTFFNDk2QTJGNjFEQjczMjVGRjYiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MUNBNDgwNDlEQjhFMTFFNDk2QTJGNjFEQjczMjVGRjYiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChNYWNpbnRvc2gpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QURGQTdDMzVEQjhEMTFFNDk2QTJGNjFEQjczMjVGRjYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QURGQTdDMzZEQjhEMTFFNDk2QTJGNjFEQjczMjVGRjYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4chVw4AAAVNklEQVR42uxdCVgT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";
function fileSaver(base64Str, filename = 'your_file_name', outputPath) {
return new Promise((resolve, reject) => {
const data = base64Str.split(',')[1];
const buff = new Buffer(data, 'base64');
const type = base64Str.match(/(?:image\/)(\w+)(?=;)/)[1];
const savePath = path.resolve(outputPath, `${filename}.${type}`);
fs.writeFile(savePath, buff, (err) => {
if (err) {
return reject(err);
}
return resolve(savePath);
})
})
}
fileSaver(baseStr, '2', './').then(
(filepath) => console.log('File saved successfully,當前遠程地址是:%s', filepath ),
(err) => console.log('File saved failed, resean : ' + err)
);Ecmobile
contentType:"application/json"
可以試一下代碼格式化。Code---Reformat Code
1 不太理解 你所謂 5秒一循環(huán)是什么意思 我大致理解為 5秒 一次推送 給前端
但是在 如果基于 web worker 以及 webAssemly 的情況下,其實 前端 循環(huán) 性能已經(jīng) 不是太 弱
但是網(wǎng)絡是個復雜的東西,在無需網(wǎng)絡請求的情況下,前端 處理 cpu密集型任務 問題應該不大
但是具體問題具體分析
2 jq 是 用js 封裝了 dom等一系列 操作的庫(對各個瀏覽器進行了兼容),jq能做的,js一定能做,反之則不然
這個前端判斷吧?你把圖片都取出來
用到1張的時候 輸出1張,用到多張的時候輸出多張
我的理解哈
沒有獲得答案,這么久了.關閉吧
你的問題 如 luozz 所言 先監(jiān)聽,后觸發(fā)
從代碼可以看到,你是先bus.$emit之后才用router.push跳到/nav1的,而你的監(jiān)聽則寫在nav1里,明顯把順序搞反了
解決方案 可以考慮下 Rossy1 的建議,你這個不太適合用event bus
不是很懂你的意思。integer不就是你定義的范型Integer嗎?
import cv2
import time
old = cv2.imread('1.jpg')
new = cv2.imread('2.jpg')
cv2.imshow('image', old)
cv2.waitKey() #按任意鍵切換
t = 1000 #時間ms
fps = 60 #幀數(shù)低于60
step = 1000 / fps
i = 0
while i < t:
cv2.imshow('image', cv2.addWeighted(old, 1 - i / t, new, i / t, 0)) #通過更改圖像透明度切換
if cv2.waitKey(1) &0xFF == ord('q'):
break
i += step
time.sleep(0.001)
cv2.imshow('image', new)
cv2.waitKey() #按任意鍵退出
cv2.destroyAllWindows()
document監(jiān)聽點擊事件
e.target!=彈窗 的時候,關閉
你可以重寫方法
tomcat/conf/server.xml,在Server.xml中的Connector節(jié)中加入maxPostSize="0",這樣tomcat不再檢查上傳文件大小。網(wǎng)上搜的,不清楚真實性...畢竟自己都沒上傳過那么大的啊哈哈哈,參考下?
方法1:不配置根路徑訪問
方法2:將路徑已出webapp目錄,在docBase中指定路徑(可以是相對于webapp的路徑,或者絕對路徑)
方法3:替換ROOT目錄【推薦】
方法4:在conf/Catalina/localhost生成ROOT.xml,并加入如下內(nèi)容:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="xxx" path="" reloadable="true" /> 最近幾天又做了幾次嘗試后還是解決了,是使用的maven做的,添加了一些依賴,看樣子手動添加jar包還是容易出錯
<!--jdbc依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- log4j依賴 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- json格式依賴 -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.17</version>
</dependency>
<!--Hikari依賴 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.1.0</version>
</dependency>
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class HikarTest {
private static Connection conn = null;
private static Statement statement = null;
private static ResultSet rs = null;
private static HikariDataSource ds;
static {
initDBSource();
}
public static void initDBSource() {
// TODO Auto-generated method stub
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8");
hikariConfig.setUsername("root");
hikariConfig.setPassword("123456");
hikariConfig.addDataSourceProperty("cachePrepStmts", "true");
hikariConfig.addDataSourceProperty("prepStmtCacheSize", "250");
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(hikariConfig);
}
/**
* 取得數(shù)據(jù)庫連接
*
* @return
* @throws Exception
*/
public static Connection getConnection() throws Exception {
Connection conn = null;
try {
conn = ds.getConnection();
} catch (Exception e) {
throw e;
}
return conn;
}
/**
* 釋放數(shù)據(jù)庫連接
*
* @param connection
* @throws Exception
*/
public static void freeConnection(Connection conn) throws Exception {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.getMessage();
}
}
}
public static void main(String[] args) {
try {
conn = ds.getConnection();
statement = conn.createStatement();
rs = statement.executeQuery("select * from dept");
while (rs.next()) {
System.out.println(rs.getString("dname"));
System.out.println(rs.getString("loc"));
System.out.println(rs.getInt("deptno"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
最終結果
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.ht... for further details.
ACCOUNTING
NEW YORK
10
RESEARCH
DALLAS
20
SALES
CHICAGO
30
OPERATIONS
BOSTON
40
這是maven自動為我導入的jar包
已經(jīng)解決,是由于開發(fā)工具的debug模式有影響。
1:逃逸分析JDK1.6及以后版本默認開啟;
2:可以自定義一個循環(huán)創(chuàng)建對象的方法,不設置任何參數(shù)run啟動是debug啟動循環(huán)方法耗時的10倍左右;
我也不太清楚為什么會出現(xiàn)這種情況,猜測java逃逸分析在debug模式是禁用的,有知情人可以講解下,謝謝。
查了很多資料,終于解決了,涉及了好幾個問題,詳情如下:
1.項目使用的spring版本是3.2.0.RELEASE的,而jdk版本用的是1.8,sping版本太低與jdk版本不兼容導致報錯。
解決辦法:要么升級spring(修改pom.xml),要么降低jdk版本。 我選擇將jdk改為1.7,成功解決。
2.接著又報錯了,原因是降低jdk版本為1.7后,tomcat又不干了(我使用的是tomcat9.0.5),tomcat版本太高。
解決辦法:將tomcat換為了6.0.44,成功解決。
注:其實可能不一定要換那么低版本的,只是剛好電腦里有這個版本就拿來用了,其它版本還沒有測試過。
2.再次在idea中運行tomcat服務器,報錯,顯示環(huán)境變量配置不正確,但是使用cmd查看java -version卻是可以顯示的。
原因:tomcat檢測環(huán)境變量檢測不出來(重啟電腦也不行)。
解決辦法:在tomcat bin目錄用記事本打開setclasspath.bat,手動配置jdk環(huán)境變量。
set JAVA_HOME=E:\Java7\jdk1.7.0_67
set JRE_HOME=E:\Java7\jdk1.7.0_67\jre北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。